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 > >