我有一个模型,其中我与 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 列。
祝你好运。
