1
在django中,當外鍵設置爲on_delete=models.SET_NULL
時,有沒有什麼方法可以用信號通知相關模型的變化?在django中刪除外鍵時在相關模型上發信號
與典型的情況第一種情況:
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.delete()被調用時,pre_delete
和post_delete
信號將被觸發兩個fk
和rm
對象。
然而,如果該RelatedModel聲明爲:
class RelatedModel(models.Model):
fKey = models.ForeignKey('ForeignModel', null=True, on_delete=SET.NULL)
我沒有看到被觸發對相關模型的任何信號,即使它已經改變(在fKey
值更改爲空) 。觸發的唯一信號是fk
的前/後刪除信號。
鑑於這種情況,是否有任何方法可以用信號通知相關模型的變化,並仍然使用on_delete=models.SET_NULL
而不是編寫自定義方法?