ここの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 ではなく機関名が表示されないのはなぜですか?