【发布时间】:2022-01-22 12:02:10
【问题描述】:
假设我有一个模型,其中包含一个事物表和一个名为 ThingRelations 的事物之间的关系表。当存在指向事物的事物关系时,应该不可能删除事物。这就是我尝试实现的方式:
from django.db import models
class ThingRelation(models.Model):
first_thing = models.ForeignKey('Thing', on_delete=models.PROTECT)
second_thing = models.ForeignKey('Thing', on_delete=models.PROTECT)
class Thing(models.Model):
name = CharField(max_length=260)
当没有更多 ThingRelations 指向某个事物时,如何自动删除它?
【问题讨论】:
-
您可以尝试创建一个post_delete 信号接收器,然后检查要删除的模型是否是 ThingRelation,如果是,是否有任何其他 ThingRelations 指向相关事物。如果没有,请删除该事物。
标签: python python-3.x django database