将值硬编码到ndb模型中

时间:2015-04-15 08:17:17

标签: python google-cloud-datastore data-modeling app-engine-ndb webapp2

我使用python在webapp2框架中工作,我有一个父类(Examplestart),它有三个属性:

variable = ndb.KeyProperty(kind=DBUser)
time = ndb.DateTimeProperty(auto_now_add=True)
statement = ndb.StringProperty(indexed=False)

示例有两个子类(Example1& Example2),我想在Examplestart中硬编码属性,以便:

my_example = DBExamplestart(
   variable = '776',
   statement = ['First']
)
my_example.put()

我应该在我的文件中插入此代码?如果我在Examplestart中使用它,代码就不起作用了。 my_example与类Example1相关。

1 个答案:

答案 0 :(得分:1)

您可以在子实体中设置默认值:

class DBExamplestart(Examplestart):
    variable = ndb.KeyProperty(kind=DBUser, default=ndb.Key(DBUser, 776))
    statement = ndb.StringProperty(indexed=False, default='First')

如果您有更复杂的事情要做(例如检索特定的ID,而不是776),您可以查看Model Hooks。 例如,_pre_put_hook()将允许您在持久化之前对您的实体执行任何操作。