You can change this on the fly, no need to do it only in models, it can be done in controllers.
### controllers/comecontroller.py db.table.field.writable = False # change the field to writable false form = SQLFORM(db.table) # build the form db.table.field.writable = True #change it again return dict(form=form) -- Bruno Rocha [ About me: http://zerp.ly/rochacbruno ] On Thu, Jun 16, 2011 at 3:05 PM, Jay Shaffstall <jshaffst...@gmail.com>wrote: > I have a situation where I need to adjust an SQLFORM field to be > non-editable. I can do that with .writable = False, but that seems to > also prevents database I/O for that field. What I'm trying to do is > set a default that cannot be changed. > > Is there a way to set an SQLFORM field so that it appears as a label > on the form itself, but is still writable for the database? > > For reference, I'm doing this with a field in the form returned by > auth.register, so I cannot insert code between the form creation and > the accepts call. I believe I'm restricted to working with the model > before calling auth.register, or by using custom forms. > > Jay >