这里的q&a(和文档)描述了format=
define_table 函数的参数的使用。我很难让它在稍微复杂一点的情况下工作。我正在使用 web2py 版本(1, 99, 7, datetime.datetime(2012, 3, 4, 22, 12, 8), 'stable')
和 Python 2.5.4
。(我使用的是 MySQL,但我认为这无关紧要。)
我有以下内容:
“独立”(不是子)表Institution
和Person
. 表Team
是Institution
. 表Team_staff
连接Person
在一起Team
。这是一个精简版:
db.define_table('Person',
Field('First_name', 'string', length=60, required=True),
Field('Last_name', 'string', length=60, required=True),
...
format='%(First_name)s %(Last_name)s')
db.define_table('Institution',
Field('Institution_name', 'string', length=60, required=True,
unique=True),
format='%(Institution_name)s')
db.define_table('Team',
Field('Institution', db.Institution),
Field('Sex', 'string', required=True,
requires=IS_IN_SET(['m', 'f'])),
Field('Level', 'string', required=True),
...
format='%(Institution)s %(Sex)s')
db.define_table('Team_staff',
Field('Team', db.Team),
Field('Team_staff_member', db.Person),
...
Field('Team_position', 'string', required=True))
到现在为止还挺好。我有一个创建SQLFORM(db.Team_staff)
, 的控制器和一个仅显示表单的视图。当我下拉“团队”下拉菜单时,我看到机构ID与“性别”值连接在一起(例如1 f
,然后1 m
在其下方,然后2 f
,等等)。同样Institution
,format='%(Institution_name)s'
为什么我没有看到机构名称而不是机构 ID?