我有一个使用web2py的应用程序。
我在数据库中有一个名为member的表:
db.define_table("member",
SQLField("membership_id", "integer",notnull=True),
SQLField("first_name", "string", notnull=True,length=100),
SQLField("region", db.region))
我希望将区域字段显示为多选列表。
我该怎么做?
提前致谢。
答案 0 :(得分:3)
您可以使用IS_IN_DB()从另一个数据库表创建一个选择框:
form = SQLFORM.factory(
Field('region', requires=IS_IN_DB(db, db.region.id, '%(name)s'))
)
或者将IS_IN_SET()用于手动数据:
regions = (1, 'a'), (2, 'b'), (3, 'c')
form = SQLFORM.factory(
Field('region', requires=IS_IN_SET([r[0] for r in regions], labels=[r[1] for r in regions]))
)