在djang中删除ForeignKey时在相关模型上发信号

2024-07-03 06:43:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在django中,当foreignKey设置为on_delete=models.SET_NULL时,是否有任何方法可以通知相关模型的更改?在

在第一种典型情况下:

class RelatedModel(models.Model):
    fKey = models.ForeignKey('ForeignModel')

class ForeignModel(models.Model):
    name = models.CharField(max_length=128)

fk = ForeignModel.objects.create(name='Test')
rm = RelatedModel()
rm.fKey = fk
rm.save()
fk.delete()

什么时候fk.删除调用()时,pre_delete和{}信号将同时为fk和{}对象触发。在

但是,如果相关模型声明为:

^{pr2}$

我没有看到相关模型的any信号被触发,即使它已经改变了(fKey值被改为null)。触发的唯一信号是fk的删除前/后信号。在

考虑到这种情况,是否有任何方法可以通知相关模型中的更改,并且仍然使用on_delete=models.SET_NULL而不编写自定义方法?在


Tags: 方法rm模型信号onmodels情况delete