2009-10-08 33 views
2

我有一個使用web2py的應用程序。web2py - 生成多選列表

我在數據庫中稱爲成員表:

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

,我想顯示的區域字段多選名單。

我怎樣才能做到這一點?

在此先感謝。

回答

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])) 
) 
+0

我使用的第一個解決方案,但是當我從列表中選擇兩個區域有一條錯誤消息,表示「\t 值不在數據庫中!」我不知道爲什麼? – Neveen 2009-10-11 09:43:21

+0

它適用於單個地區嗎? – hoju 2009-10-11 23:32:18