将值硬编码到 ndb 模型中

Hardcoding values into ndb model

我正在使用 python 在 webapp2 框架中工作,我有一个 parent class(Examplestart),它具有三个属性:

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

示例有两个 children class(Example1 & Example2) ,我想在 Examplestart 中对属性进行硬编码,以便:

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

我应该在我的文件中的什么地方插入这段代码?如果我在 Examplestart 中使用它,代码将无法正常工作。 my_example 与 class Example1 有关。

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

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() 将允许您在持久化之前对您的实体执行任何操作。