0

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

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

这可能吗,因为我在尝试时不断收到错误消息。

define_table 参数不是字段或表:1

4

1 回答 1

1

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

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

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

如果您的目标是使用记录来预填充表单值,则另一种方法是将字段默认值设置为这些值。

于 2013-08-13T14:43:46.430 回答