2

我有与 3 个差异模型有关系的模型。

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

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

我可以覆盖调用类中的删除函数BaseModel并将更新字段的自定义删除方法覆盖为1。但问题是

如果我这样做,那么我必须手动遍历所有级联关系并手动调用 delete ob 每个对象。

有什么方法可以通过调用 object.delete() 来实现。它也会自动遍历子对象

4

1 回答 1

0

请看D​​jango: How can I find which my models refer to a model

您可以使用 aCollector获取对所有必要项目的所有引用collect()。这是 Django 用来模拟CASCADE行为的代码。收集完所有参考资料后,您可以针对其中的每一项更新该DELETED列。

代码中的更多信息。

祝你好运。

于 2012-10-22T05:10:11.303 回答