首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套_pre_delete_hook或_post_delete_hook

嵌套_pre_delete_hook或_post_delete_hook
EN

Stack Overflow用户
提问于 2017-05-18 16:55:32
回答 1查看 106关注 0票数 0

我制作了一个带有ndb模型的Google应用程序。它看起来有点像树结构。当根被删除时,我想要删除所有的模型,而不仅仅是分支的第一个杠杆。

示例:

代码语言:javascript
复制
Company
  Order
    Item
      ...
  Contact
    Pet

当我删除一个模型,我希望所有的模型取决于它也被删除。我想我可以用_pre_delete_hook或_post_delete_hook来做。在本例中,当我删除订单时,我使用钩子删除所有项目。如果我删除了整个公司,我就删除所有订单和联系人。这些型号的删除钩子不会触发。数据仍然存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-18 22:18:38

使用_pre_delete_hook_post_delete_hook有什么好处?似乎会降低您的代码的可读性,并且对Google代码更新有些脆弱。我总是紧张地使用以下划线开头的方法。

相反,只需为实体创建自己的delete方法:

代码语言:javascript
复制
class Company(ndb.Model):
    def delete(self):
        for order in Order.query(Order.company_key == self.key)):
            order.delete()
        self.key.delete()

class Order(ndb.Model):
    def delete(self):
        for item in Item.query(Item.order_key == self.key)):
            item.delete()
        self.key.delete()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44053787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档