True, only restriction is no common field names.
I have added this to the book.


On Dec 5, 11:05 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
> No field names in comment yes. References between them is not a
> problem as long the reference fields are not writable and readable
> when generating the form.
>
> On Dec 5, 9:41 pm, DenesL <denes1...@yahoo.ca> wrote:
>
> > This only works for tables that do not have field names in common
> > and have no references between them.
>
> > On Oct 16, 9:57 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > 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
>
>

Reply via email to