在将外键呈现为 web2py appadmin 中的下拉列表之后,我希望能够将引用的引用呈现为下拉列表中的字符串。
换句话说,上一个问题涉及如何将表的外键呈现为下拉。这个问题涉及外键的外键。
我现在可以渲染表的外键
wallet_asset
:
db.define_table('wallet_asset',
Field('wallet_id', 'reference wallet'),
Field('asset_id', 'reference asset'),
)
通过像这样定义引用的表:
db.define_table('asset',
Field('name', unique=True, requires=IS_NOT_EMPTY()),
Field('description', 'text'),
format='%(name)s'
)
db.define_table('wallet',
Field('name', unique=True, requires=IS_NOT_EMPTY()),
Field('description', type='text'),
format='%(name)s'
)
但现在我想要一张桌子user_wallet_asset
:
db.define_table('user_wallet_asset',
Field('user_id', 'reference auth_user'),
Field('wallet_asset_id', 'reference wallet_asset'),
Field('address')
)
当我使用 AppAdmin 输入记录时,我希望该字段
wallet_asset_id
在下拉列表中呈现为基于表资产中外键表示的字符串wallet and
,例如:
asset.name 保存在 wallet.name 中
这并不简单的原因是user_wallet_asset
引用wallet_asset
然后引用wallet
和asset
。
大概最终的解决方案看起来像这样:
db.define_table('wallet_asset',
Field('wallet_id', 'reference wallet'),
Field('asset_id', 'reference asset'),
format='%(asset_id).name is held in %(wallet_id).name'
)