web2py - 生成多选列表

时间:2009-10-08 09:37:57

标签: web2py

我有一个使用web2py的应用程序。

我在数据库中有一个名为member的表:

db.define_table("member",
  SQLField("membership_id", "integer",notnull=True),
  SQLField("first_name", "string", notnull=True,length=100),
  SQLField("region", db.region))

我希望将区域字段显示为多选列表。

我该怎么做?

提前致谢。

1 个答案:

答案 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]))
)