Modellerim arasında gevşek bir kaplin modellemek için modelimde boş olabilecek bir ForeignKey var. Biraz benziyor: gönderenler adı sender_name özniteliği yazılır kaydetmek OnNullable ForeignKeys ve başvurulan model örneğini silme
class Message(models.Model):
sender = models.ForeignKey(User, null=True, blank=True)
sender_name = models.CharField(max_length=255)
. Şimdi, gönderen tarafından başvurulan Kullanıcı örneğini silmek ve mesajı yerinde bırakmak istiyorum.
Bu kod her zaman Kullanıcı örneğini sildikten sonra silinen iletilerle sonuçlanır. Bu yüzden bir sinyal işleyicisinin iyi bir fikir olacağını düşündüm.
def my_signal_handler(sender, instance, **kwargs):
instance.message_set.clear()
pre_delete.connect(my_signal_handler, sender=User)
Ne yazık ki, hiçbir şekilde bir çözüm değildir. Bir şekilde Django ilk önce silmek istediğini toplar ve daha sonra pre_delete işleyicisini kovur.
Herhangi bir fikrin var mı? Beynimdeki düğüm nerede?
Açmak için açıklama ve işaretçiler için teşekkürler. –
Tam cevap. –