Frage

Ich habe zwei Modelle:Nachricht und Anhang.Jeder Anhang wird mithilfe eines ForeignKey im Anhangmodell an eine bestimmte Nachricht angehängt.Beide Modelle verfügen über ein auto_now DateTimeField namens „update“.Ich versuche es so zu gestalten, dass beim Speichern eines Anhangs auch das aktualisierte Feld in der zugehörigen Nachricht auf „Jetzt“ gesetzt wird.Hier ist mein Code:

def save(self):
    super(Attachment, self).save()
    self.message.updated = self.updated

Wird das funktionieren und wenn Sie es mir erklären können, warum?Wenn nicht, wie würde ich das erreichen?

War es hilfreich?

Lösung

Anschließend müssen Sie die Nachricht auch speichern.Dann sollte es funktionieren.

Andere Tipps

DateTime-Felder mit auto_now werden beim Aufruf automatisch aktualisiert save(), sodass Sie sie nicht manuell aktualisieren müssen.Django wird diese Arbeit für Sie erledigen.

Die richtige Version zum Arbeiten ist:(Achtung: letzte Zeile self.message.save())

class Message(models.Model):
    updated = models.DateTimeField(auto_now = True)
    ...

class Attachment(models.Model):
    updated = models.DateTimeField(auto_now = True)
    message = models.ForeignKey(Message)

    def save(self):
        super(Attachment, self).save()
        self.message.save()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top