You can change db.client.uid.readbale=True or False
where you need it, for example in the action before form=. Massimo On Jan 15, 11:08 am, kbochert <kboch...@copper.net> wrote: > Is it possible to use SQLFORM to generate forms which show different > fields? > > I.E. I have a model: > > db.define_table('client', > Field('uid', auth_user), > Field('name', 'string'), > migrate = 'client.table' > ) > > I want a page which the client uses that hides the 'uid' field, which > gets filled in automatically by the controller. > A different page accessible to the superuser shows the field normally. > > I tried: > db.define_table('client', > Field('uid', 'string', readable=False, writable=False), > Field('name', 'string'), > migrate = 'client.table' > ) > > with > form = SQLFORM(db.client, _id='profile_table') > if form.accepts(request.vars, session, dbio=False): > form.vars.uid = 2 > form.vars.id = db.client.insert(**dict(form.vars)) > > and get the error > SyntaxError: invalid field names: ['uid'] > > The other approach I tried was to remove the 'readable' and 'writable' > from the model (But won't those prevent the superuser's page from > showing the 'uid' field??) and using the 'fields' parameter in the > SQLFORM call to explicitly set the fields I wanted to see. Same > result- the accepts() method rejects the added 'uid' var. > > Finally I tried using the 'onvalidation' parameter. Same result. > > Is there a way to do this?? > Karl
-- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web...@googlegroups.com. To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.