Warum gibt mir Django nach dem Speichern Daten vor dem Speichern?

Ich versuche, ein "Information" -Objekt mit vielen "Kunden" zu verbinden (siehe Code unten)

Wenn ein Informationsobjekt aktualisiert wird, möchte ich jedem Kunden, der mit den Informationen verbunden ist, eine E-Mail senden.

Wenn ich jedoch das sold_to-Feld protokolliere, das das Signal empfängt, erhalte ich vor dem Speichern immer, wie die Daten aussehen.

Ich vermute, das liegt daran, dass sein ManyToManyField und die Daten in einer separaten Tabelle gespeichert sind. Sollte das post_save-Signal jedoch nicht aufgerufen werden, nachdem alle Beziehungen aktualisiert wurden?

Hat jemand einen Lösungsvorschlag?

class Customer
    name = models.CharField(max_length=200)
    category = models.ManyToManyField('Category',symmetrical=False)
    contact = models.EmailField()

class Information
    name = models.CharField(max_length=200)
    email = models.EmailField(max_length=200)
    mod_date = models.DateTimeField(auto_now=True)
    sold_to = models.ManyToManyField(Customer, null=True, blank=True)


def send_admin_email(sender, instance, signal, *args, **kwargs):
    from myapp import settings
    for cust in instance.sold_to.all():
        settings.debug(cust.name)

post_save.connect(send_admin_email, sender=Information)

Edit: apollo13 in #django hat mich darauf aufmerksam gemacht: "Verwandte Elemente (die in der Viele-zu-Viele-Beziehung gespeicherten Objekte) werden nicht als Teil der Speichermethode eines Modells gespeichert, wie Sie festgestellt haben." -http://groups.google.com/group/django-users/msg/2b734c153537f970

Aber seit dem 9. Juli 2006 hoffe ich wirklich, dass es eine Lösung dafür gibt.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage