found at
writable
declares whether a field is writable in forms.readable
declares whether a field is readable in forms. If a field is neither readable nor writable, it will not be displayed in create and update forms.
Also, you can turn the readable and writable setting on or off on the fly:
<URL:http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Run-time-field-and-table-modification>
def func1():
db.run.distance.readable = False
db.run.duration.readable = False
form = SQLFORM(db.run)
[...]
def func2():
if request.vars.startseg:
try:
db.segment.isstart.default = (request.vars.startseg == 'T' )
print "isstart " + ('True' if db.segment.isstart.default else "False")
db.segment.isstart.readable = db.segment.isstart.default
print "isstart should be readable now %d" % (db.segment.isstart.readable)
except ValueError:
pass
else:
db.segment.isstart.writable = False
print "isstart should not be readable now %d" % (db.segment.isstart.writable)
db.segment.isstart.writable = db.segment.isstart.default
print "isstart should not be writable now %d" % (db.segment.isstart.writable)
form = SQLFORM(db.segment)
[...]