我需要创建一个下拉列表,用户可以在其中从
中选择一个值
或在其中输入值。Dropdownlist的值被存储
在数据库表中。
例如:表格看起来像这样:
“您来自哪里?”:如果您的
,则下拉列表会列出可用的城市
找不到您所在城市的城市。
我尝试了以下代码:
Field('City', requires = IS_IN_DB(db,db.city.id,'%(city)s')
使用此代码,如果
中缺少该城市,我将无法输入新城市
数据库。
我只能在数据库中选择可用的城市。
型号:
db.define_table('city',Field('name',type='string',length=100,required=True
,notnull=True, ondelete='SET NULL',unique=True),format='%(name)s')
db.define_table('person',Field('name',type='string',length=100,required=Tr
ue,notnull=True, ondelete='SET NULL',unique=True),
Field('city_id','reference city',required=True,notnull=True,label='City'),
format='%(name)s')
db.person.city_id.requires=IS_IN_DB(db,'city.id' ,'%(city)s')
控制器:
def person():
return
dict(grid=sqlform.grid(db.person,create=True,editable=True,deletable=True)
)
View:
{{extend 'layout.html'}}
<div class="row">
<div class="col-md-12">
{{pass}}
{{=grid}}
</div>
</div>