将值硬编码到 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() 将允许您在持久化之前对您的实体执行任何操作。
我正在使用 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() 将允许您在持久化之前对您的实体执行任何操作。