我正在尝试启用一个用例“添加城市”,在该用例中,我获得了城市所属区域的区域和城市的模型定义:
class Region(db.Model):
name = db.StringProperty()
vieworder = db.IntegerProperty()
image = db.BlobProperty()
class City(db.Model):
region = db.ReferenceProperty()
name = db.StringProperty()
image = db.BlobProperty()
vieworder = db.IntegerProperty()
areacode = db.IntegerProperty()
然后我手动添加区域并制作了一个表格来添加城市:
class AddCityForm(Form):
my_choices = [
('0', _('All regions')),
('1', _('Delhi')),
]
region = SelectField(choices=my_choices)
name = TextField(_('Name'))
class AddCityHandler(BaseRequestHandler):
def get(self):
logging.info('i baserequesthandler')
self.render('addcity.html', {'form': AddCityForm()})
现在我希望选择从数据层读取,并且是所有区域Region.all()
,ID 是实体的 ID,以便我可以使用区域的键作为它所属区域的参考来填充城市。你能告诉我如何让 WTForms 用我的区域填充数据存储中的选项吗?
谢谢你
更新
在 GAE 中,以下代码用于从数据存储区读取选项
class RegionField(SelectField):
def __init__(self, *args, **kwargs):
super(RegionField, self).__init__(*args, **kwargs)
self.choices = []
for region in Region.all().fetch(99999):
self.choices.append([region.key().id(), region.name])
class AddCityForm(Form):
region = RegionField()
name = TextField(_('Name'))