web2py多种形式

时间:2012-04-21 13:20:40

标签: python sqlite web2py

我创建了一个多表格

form = SQLFORM.factury(db.table1,db.table2)

db.table2包含以下字段,字段invoice_iddb.table1相关联,catalogue_id与另一个表db.table0

相关联
db.define_table('table2',
    Field('id','id'),
    Field('user_id', db.auth_user, default=auth.user_id, writable=False,readable=False,
          label=T('User Id')),
    Field('invoice_id', db.table1,  writable=False,readable=False,
          label=T('Invoice')), 
    Field('catalogue_id', db.table0,
          label=T('Catalogue')),
    format='%(thiscatalogue)s',
    migrate=settings.migrate)

发送表单后,应自动从web2py填充invoice_id并获取ID数据的sent

但有这个

Field('invoice_id', db.table1, ... )

使字段在提交之前必须具有值

1 个答案:

答案 0 :(得分:1)

参见示例here。在这种情况下,例如:

form = SQLFORM.factory(db.table1, db.table2)
if form.process().accepted:
    invoice_id = db.table.insert(**db.table1._filter_fields(form.vars))
    form.vars.invoice_id = invoice_id
    db.table2.insert(**db.table2._filter_fields(form.vars))

首先将新发票插入table1,后者返回新记录的ID。然后,在插入table2之前,将form.vars.invoice_id设置为新发票记录的ID。