是否存在用于声明模型的计算键的模式?

问题描述

我希望将特定的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?

解决方法

您可以使用_pre_put_hook函数将密钥名称设置为认沽期权的一部分。这也是验证bar&baz不会在更新过程中更改的地方。