是否有用于为模型声明计算键的模式?
Is there a pattern for declaring a computed key for a model?
我希望将特定 ndb.Model 键的字符串 ID 自动设置为两个模型属性的串联。这两个属性是一次性写入的,但其他属性可能会更改。这种方法有助于确保实体对于这两个属性是唯一的。
下面是 class 的样子:
class Foo(ndb.Model):
bar: ndb.StringProperty()
baz: ndb.StringProperty()
实体可以这样构造:
foo = Foo(id='bar-baz', bar='bar', baz='baz')
foo.put()
是否有一种模式可以在模型 class 本身中自动设置该 ID,类似于 ComputedProperty?
您可以使用 _pre_put_hook
函数将键名设置为 put 的一部分。这也是验证 bar & baz 不会作为更新的一部分更改的地方。
我希望将特定 ndb.Model 键的字符串 ID 自动设置为两个模型属性的串联。这两个属性是一次性写入的,但其他属性可能会更改。这种方法有助于确保实体对于这两个属性是唯一的。
下面是 class 的样子:
class Foo(ndb.Model):
bar: ndb.StringProperty()
baz: ndb.StringProperty()
实体可以这样构造:
foo = Foo(id='bar-baz', bar='bar', baz='baz')
foo.put()
是否有一种模式可以在模型 class 本身中自动设置该 ID,类似于 ComputedProperty?
您可以使用 _pre_put_hook
函数将键名设置为 put 的一部分。这也是验证 bar & baz 不会作为更新的一部分更改的地方。