python - query - actualizando un Auto_now DateTimeField en un modelo padre w/Django
django rawqueryset (3)
Tengo dos modelos: Mensaje y Adjunto. Cada archivo adjunto se adjunta a un mensaje específico, utilizando un ForeignKey en el modelo de archivo adjunto. Ambos modelos tienen un auto_hora DateTimeField llamado actualizado. Estoy tratando de hacerlo para que cuando se guarde cualquier archivo adjunto, también establezca el campo actualizado en el mensaje asociado hasta ahora. Aquí está mi código:
def save(self):
super(Attachment, self).save()
self.message.updated = self.updated
Funcionará esto, y si me lo puede explicar, ¿por qué? Si no, ¿cómo lo lograría?
También necesitarás guardar el mensaje. Entonces eso debería funcionar.
Los campos DateTime con auto_now se actualizan automáticamente al llamar a save()
, por lo que no es necesario actualizarlos manualmente. Django hará este trabajo por ti.
La versión correcta para trabajar 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()