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
>

Reply via email to