actualizar un auto_now DateTimeField en un modelo principal con Django
Pregunta
Tengo dos modelos:Mensaje y archivo adjunto.Cada archivo adjunto se adjunta a un mensaje específico, utilizando una ForeignKey en el modelo de archivo adjunto.Ambos modelos tienen un auto_now DateTimeField llamado actualizado.Estoy intentando que cuando se guarde cualquier archivo adjunto, también establezca el campo actualizado en el mensaje asociado en ahora.Aquí está mi código:
def save(self):
super(Attachment, self).save()
self.message.updated = self.updated
¿Funcionará? Si puedes explicármelo, ¿por qué?Si no, ¿cómo podría lograr esto?
Solución
También deberá guardar el mensaje.Entonces eso debería funcionar.
Otros consejos
Los campos DateTime con auto_now se actualizan automáticamente al llamar save()
, por lo que no es necesario actualizarlos manualmente.Django hará este trabajo por ti.
La versión adecuada para funcionar es:(atención a la última línea 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()