我想知道为什么我在 web2py SQLFORM.factory 中的变量有一个 no_table_[name] 而不是实际的表名?有没有什么遗漏的代码。
例如
form = SQLFORM.factory(db.event, db.event_permissions, record=record, fields=fields, submit_button='Edit Event Master')
SQLFORM.factory
通过创建一个虚拟DAL
实例和一个虚拟DAL
表来工作。默认情况下,虚拟表名称为“no_table”,但您可以通过table_name
参数更改它。
当您将整个表传递给 时SQLFORM.factory
,它只是从这些表中提取字段,但在构造 HTML 小部件 id 时它不会保留表名(相反,它只是使用虚拟表名来构造 id)。在关于多表的一种形式的书籍部分中,这就是它说的原因:
这仅在表没有共同的字段名称时才有效。
如果您在两个表中都有相同名称的字段,则它们最终将具有相同的 id。