0

我想知道为什么我在 web2py SQLFORM.factory 中的变量有一个 no_table_[name] 而不是实际的表名?有没有什么遗漏的代码。

例如

form = SQLFORM.factory(db.event, db.event_permissions, record=record, fields=fields, submit_button='Edit Event Master')
4

1 回答 1

1

SQLFORM.factory通过创建一个虚拟DAL实例和一个虚拟DAL表来工作。默认情况下,虚拟表名称为“no_table”,但您可以通过table_name参数更改它。

当您将整个表传递给 时SQLFORM.factory,它只是从这些表中提取字段,但在构造 HTML 小部件 id 时它不会保留表名(相反,它只是使用虚拟表名来构造 id)。在关于多表的一种形式的书籍部分中,这就是它说的原因:

这仅在表没有共同的字段名称时才有效。

如果您在两个表中都有相同名称的字段,则它们最终将具有相同的 id。

于 2013-02-25T13:57:35.333 回答