如何在Google App Engine NDB模型中使用选项

时间:2015-01-27 13:11:46

标签: python django google-app-engine google-cloud-datastore app-engine-ndb

我想用Python创建一个Google App Engine的ndb.Model模型。其中一个字段是一个选项,将有4个选项(0到3),每个选项都有一个表示它的字符串。如何在模型中定义此字段?我希望字符串显示在表单中,但要保存到数据库中的数字(我不想将选项名称保存到数据库中)。我如何使用选择?是否可以使用字典或元组列表?我还想为数字0到3定义常量。如何在Google App Engine中实现它?我们正在使用Django模板,我想做一些类似于我们在Django中做的事情。

顺便说一句,是否有可能将Google App Engine NDB与Django一起使用?它是一个新的应用程序,如果可能的话,我们可以使用Django。

1 个答案:

答案 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()])