【问题标题】:Is there a pattern for declaring a computed key for a model?是否有为模型声明计算键的模式?
【发布时间】:2020-12-08 22:26:52
【问题描述】:

我希望将特定 ndb.Model 键的字符串 ID 自动设置为两个模型属性的串联。这两个属性是一次性写入的,尽管其他属性可能会改变。这种方法有助于确保实体对于这两个属性是唯一的。

这个类可能是这样的:

class Foo(ndb.Model):
  bar: ndb.StringProperty()
  baz: ndb.StringProperty()

一个实体可以这样构造:

foo = Foo(id='bar-baz', bar='bar', baz='baz')
foo.put()

是否有一种模式可以在模型类本身中自动设置该 id,类似于 ComputedProperty?

【问题讨论】:

    标签: python-3.x google-cloud-datastore app-engine-ndb google-app-engine-python


    【解决方案1】:

    您可以使用_pre_put_hook 函数将键名设置为看跌期权的一部分。这也是验证 bar & baz 不会作为更新的一部分而更改的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-05
      • 2019-12-06
      • 2018-12-08
      • 2012-04-11
      相关资源
      最近更新 更多