db.define_table('person', Field('name'), format='%(name)s')
这个格式在这里有什么作用?
The format
参数用于确定如何显示引用“person”表的其他表中的字段。例如,如果您定义:
db.define_table('dog',
Field('name'),
Field('owner', db.person)
“owner”字段是引用“person”表的引用字段(即,它存储“person”表中记录的记录 ID)。在大多数情况下,当您显示“dog”表中的数据时,您不希望显示存储在“owner”字段中的原始 db.person 记录 ID,因为它没有任何意义 - 相反,显示此人的“姓名”更有意义。在 web2py 中,format
表的属性可以在表单和表格中实现这种自动替换。
当您基于'dog'表创建SQLFORM时,它会自动为'owner'字段生成一个下拉列表,并且由于format='%(name)s'
作为“person”表定义的参数,下拉列表将显示 db.person 名称而不是记录 ID(即使在提交表单时,“所有者”字段将存储关联的记录 ID 而不是名称)。
另外,如果您在 SQLTABLE 或 SQLFORM.grid 中显示“dog”表中的记录,则“owner”字段将显示所有者的名称,而不是所有者的记录 ID。
See http://web2py.com/books/default/chapter/29/6#Record-representation.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)