Ich habe eine sehr einfache Modelle in meinem models.py wie folgt aus:Django Signale für Modelle Wertänderung Bedingung?
class Music(models.Model):
title= models.CharField(
max_length=100
)
description = models.TextField(
null=True,
blank=True
)
def __unicode__(self):
return self.name
class Album(models.Model):
musician= models.CharField(
related_name='musician',
max_length=100
)
music = models.ForeignKey(
Music,
related_name='music'
)
def __unicode__(self):
return self.user.username
In diesem Fall ich eine sehr einfache Logik in meinem signals.py nur, wenn das neue Feld (Neue Musik) hat um zu prüfen, zum Album hinzugefügt.
Album(musician="someone", music=Music.objects.get(title="something")) #pk=1
Album.save()
wie folgt aus:
@receiver(post_save, sender=Album)
def add_new_album(sender, instance, **kwargs):
if kwargs.get('created'):
print "new album recently created"
In anderen Zustand, ich möchte Signale machen, die nur beantwortet werden, wenn die vorhandenen Felder in die neue bearbeitet:
edit_album = Album.objects.get(pk=1)
edit_album.music = Music.objects.get(title="something_else")
edit_album.save()
Die Verwendung von Post_Save-Empfänger make add_new_album() -Funktion wird jedes Mal ausgelöst, wenn ich das vorhandene Feld bearbeite .. Also meine Frage ist, was ist die Logik, die in signals.py implementiert werden sollte, die nur die Editi antworten ng Felder Zustand?