Skip to main content
 首页 » 编程设计

python之在 django python 中覆盖删除函数的最佳方法是什么

2025年05月04日25luoye11

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

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

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

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

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

有什么方法可以只调用 object.delete()。它也自动遍历子对象

请您参考如下方法:

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

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

More info in the code.

祝你好运。