都市が地域に属する地域と都市のモデル定義を取得したユースケース「都市の追加」を有効にしようとしています:
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'))