Domanda

Ho due modelli:Messaggio e allegato.Ogni allegato è allegato a un messaggio specifico, utilizzando una ForeignKey sul modello Allegato.Entrambi i modelli hanno un auto_now DateTimeField chiamato aggiornato.Sto cercando di fare in modo che quando viene salvato un allegato, imposti anche il campo aggiornato sul messaggio associato su adesso.Ecco il mio codice:

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

Funzionerà e, se puoi spiegarmelo, perché?In caso contrario, come potrei realizzare ciò?

È stato utile?

Soluzione

Dovresti anche salvare il messaggio.Allora dovrebbe funzionare.

Altri suggerimenti

I campi DateTime con auto_now vengono aggiornati automaticamente al momento della chiamata save(), quindi non è necessario aggiornarli manualmente.Django farà questo lavoro per te.

La versione corretta per funzionare è:(attenzione all'ultima riga 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()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top