【问题标题】:django : remove ON DELETE CASCADE behaviour of djangodjango:删除 django 的 ON DELETE CASCADE 行为
【发布时间】:2010-09-06 13:20:36
【问题描述】:

我在 django 开发中遇到问题。实际上我创建了一个模型,其中包括 4 个其他模型的外键。现在我在管理站点使用这些所有模型。问题是当我删除在我的主模型中使用外键的记录时,这个删除过程也会从我的主模型中删除记录。我要求如果模型包含任何其他模型的外键,那么如果我从管理员中删除此外键模型记录,则不得从使用此模型作为外键的模型中删除任何记录。

任何人都知道我该如何阻止这个'ON DELETE CASCADE'

我将非常感谢你。 问候

【问题讨论】:

    标签: django


    【解决方案1】:

    有一段时间有on_delete属性,可以为ForeignKey字段设置。来自 Django 文档的示例:

      user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL)
    

    【讨论】:

      【解决方案2】:

      覆盖MyObj.delete() 以遍历您要保留的所有键控关系,将它们对您要删除的对象的引用设置为空。然后,一旦所有的关系都脱钩,请致电super(MyObj, self).delete()

      您可能必须更新您的数据库(和模型定义),以允许您取消挂钩的那些键为 null=True。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-12
        • 2018-12-02
        • 2018-12-01
        • 2013-09-20
        • 2010-12-27
        • 1970-01-01
        • 2015-12-31
        相关资源
        最近更新 更多