我在ndb模型上设置了_post_put_hook,用于更新某些搜索索引。这简化了数据导入和原子更新。 但我有一个案例,我想更新该模型的某些属性而不触发索引操作。
所以我正在寻找:
谢谢!
答案 0 :(得分:2)
一种方法是设置一个不是ndb.Property(即volatile)的实体属性,当你想避免在_post_put_hook中调用逻辑时,你可以显式设置它。
例如
来自我的zope days属性,这些属性不会保存在名为_v_somename
如此明确setattr(self,_v_no_hook,True)
- 显然在方法中这样做; - )
然后只需检查_post_put_hook
if not getattr(self,'_v_no_hook`,False):
# do something.not
你可以使用post put hooks,因为它们是方法,而不是类方法,大多数其他钩子都是。