更新时间:2023-02-05 11:39:01
这不是user2059857所建议的优雅解决方案,但更易于实现:
Not an elegant solution as what user2059857 suggested, but a LOT simpler to implement:
为模型A添加一个字段:
Add a field to model A:
being_deleted = models.BooleanField(default=False)`
在触发模型pre_delete信号时将其设置为True:
Set this to True when A model pre_delete signal is fired:
@receiver(models.signals.pre_delete, sender=A)
def a_pre_delete(sender, instance, **kwargs):
instance.being_deleted = True
instance.save()
检查您的A实例的 being_deleted
在子模型的每个 pre_delete
中是否为True,并采取相应的措施.
Check if being_deleted
of your A instance is True in every pre_delete
of child models and act accordingly.