在django python中覆盖delete函数的最佳方法是什么?

时间:2012-10-22 03:23:10

标签: python django

我有模型,其中我与3个差异模型有关系。

现在我知道如果我使用 object.delete(),然后子对象也将被删除。

现在的问题是,在我的整个模型类中,我有一个名为DELETED的数据库列,我想在有人删除某个对象时将其设置为1。

我可以覆盖名为BaseModel的类中的已删除函数,并覆盖更新字段的自定义删除方法为1.但问题是

如果我这样做,那么我必须手动完成所有级联关系并手动调用每个对象的删除ob。

有没有办法只通过调用object.delete()。它也会自动遍历子对象

1 个答案:

答案 0 :(得分:0)

请查看Django: How can I find which of my models refer to a model

您可以使用Collector使用collect()获取对所有必要项目的所有引用。这是Django用来模拟CASCADE行为的代码。收集完所有引用后,您可以为每个项目更新DELETED列。

More info in the code.

祝你好运。