我想用Python创建一个Google App Engine的ndb.Model模型。其中一个字段是一个选项,将有4个选项(0到3),每个选项都有一个表示它的字符串。如何在模型中定义此字段?我希望字符串显示在表单中,但要保存到数据库中的数字(我不想将选项名称保存到数据库中)。我如何使用选择?是否可以使用字典或元组列表?我还想为数字0到3定义常量。如何在Google App Engine中实现它?我们正在使用Django模板,我想做一些类似于我们在Django中做的事情。
顺便说一句,是否有可能将Google App Engine NDB与Django一起使用?它是一个新的应用程序,如果可能的话,我们可以使用Django。
答案 0 :(得分:3)
使用键将字符串保持为常量。这样的事情会起作用:
choices = {0: 'Foo', 1: 'Bar', ...}
class Model(ndb.Model):
choice = ndb.IntegerProperty(choices=choices.keys())
# you can easily generate such form using wtforms..
class ModelForm(wtforms.Form):
choice = wtforms.fields.SelectField(
choices=[(k, v) for k, v in choices.iteritems()])