使用SQLFORM在多个表上进行web2py更新

时间:2013-08-13 06:39:24

标签: forms web2py

我想知道是否可以使用以下方法创建表单:

record = request.args(0)
form = SQLFORM.factory(db.tbl1, db.tbl2, db.tbl3, db.tbl4, record)

这是否可行,因为我在尝试时遇到错误。

define_table参数不是字段或表:1

1 个答案:

答案 0 :(得分:1)

SQLFORM.factory的位置参数只能是字段或表(从中提取字段)。其他参数必须作为关键字参数传递:

form = SQLFORM.factory(..., record=record)

但是,将记录ID作为record参数传递给SQLFORM.factory将不起作用,因为SQLFORM.factory生成带有虚拟表的虚拟DAL实例,因此它赢了无法使用记录ID查询虚拟表以便检索记录。在任何情况下,您的记录ID所引用的记录都不清楚(您的表单包含四个单独的数据库表)。

如果您的目标是使用记录预填充表单值,则可以选择将字段默认值设置为这些值。