2009-10-08 4 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)) 

, и я хочу, чтобы отобразить поле региона в качестве списка MULTISELECT.

Как я могу это сделать?

Заранее спасибо.

ответ

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

+0

Работает ли он в одном регионе? – hoju