问题描述
我希望将特定的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不会在更新过程中更改的地方。