If it is not writable you may aso want to give it a default when you
crud.create it.

On Jan 3, 10:16 am, Miguel Lopes <mig.e.lo...@gmail.com> wrote:
> On Sun, Jan 3, 2010 at 4:01 PM, Miguel Lopes <mig.e.lo...@gmail.com> wrote:
> > I have:
>
> > form=crud.update(db.contact,contact)
>
> > which raises an exception due to the model having writable=False on a 
> > relation:
>
> > db.define_table('contact',
> >    ...
> >    Field('account_id',db.account,writable=False),
> >    ...
> > )
>
> > Is this correct?
> > How can I use crud without allowing for the relation to be edited.
>
> Ok. Found the solution:
> just set a representation for the field, before creating the form:
>
> db.contact.account_id.represent=lambda id: 
> SPAN(db.contact[id].account_id.name)
> form=crud.update(db.contact,contact)
>
> What set me off is that non-foreign key fields do not need this. They
> just render as labels if they are set as writable=False.
>
> Miguel

--

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.


Reply via email to