gpt4 book ai didi

python - 在django中,删除某类实例时,如何删除所有相关对象?

转载 作者:行者123 更新时间:2023-11-28 20:27:56 25 4
gpt4 key购买 nike

我首先尝试覆盖 delete() 方法,但这对 QuerySet 的批量删除方法不起作用。它应该与 pre_delete 信号有关,但我无法弄清楚。我的代码如下:

def _pre_delete_problem(sender, instance, **kwargs):
instance.context.delete()
instance.stat.delete()

但是这个方法好像被无限调用了,程序陷入了死循环。有人可以帮帮我吗?

最佳答案

如果类有外键(或相关对象),它们将被默认删除,就像 sql 中的 DELETE CASCADE 一样。

您可以使用 on_delete 更改行为在类中定义 ForeignKey 时的参数,但默认情况下它是 CASCADE。您可以查看文档 here .

现在 pre_delete 信号起作用了,但是如果您正在使用批量删除,它不会调用 delete() 方法,因为它不会在对象中删除对象基础。

关于python - 在django中,删除某类实例时,如何删除所有相关对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6936840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com