Nice! Thank you. I am going to use that right now.

Need to create a blog/wiki or some place to document all your tips, tricks
and revealed secrets about DAL and web2py.

2010/10/16 mdipierro <[email protected]>

> It often happens that you have two tables (for example 'client' and
> 'address' which are linked together by a reference and you want to
> create a single form that allows to insert info about one client and
> its default address. Here is how:
>
> model:
>
> db.define_table('client',
>     Field('name'))
> db.define_table('address',
>    Field('client',db.client,writable=False,readable=False),
>    Field('street'),Field('city'))
>
> controller:
>
> def register():
>    form=SQLFORM.factory(db.client,db.address)
>    if form.accepts(request.vars):
>        id = db.client.insert(**db.client._filter_fields(form.vars))
>        form.vars.client=id
>        id = db.address.insert(**db.address._filter_fields(form.vars))
>        response.flash='Thanks for filling the form'
>    return dict(form=form)
>
> Notice the SQLFORM.factory (it makes ONE form using public fields from
> both tables and inherits their validators too).
> On form accepts this does two inserts (some data in one table and some
> data in the other).
>
> Massimo
>
>
>
>


-- 

http://rochacbruno.com.br

Reply via email to