Question

J'ai deux modèles :Message et pièce jointe.Chaque pièce jointe est jointe à un message spécifique, à l'aide d'une ForeignKey sur le modèle Attachment.Les deux modèles ont un DateTimeField auto_now appelé update.J'essaie de faire en sorte que lorsqu'une pièce jointe est enregistrée, le champ mis à jour du message associé soit également défini sur maintenant.Voici mon code :

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

Est-ce que cela fonctionnera, et si vous pouvez m'expliquer, pourquoi ?Sinon, comment pourrais-je y parvenir ?

Était-ce utile?

La solution

Vous devrez également ensuite enregistrer le message.Alors ça devrait marcher.

Autres conseils

Les champs DateTime avec auto_now sont automatiquement mis à jour lors de l'appel save(), vous n'avez donc pas besoin de les mettre à jour manuellement.Django fera ce travail pour vous.

La version appropriée pour fonctionner est :(attention à la dernière ligne 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()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top