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