2008-08-21 20 views
9

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:actualizando un auto_hora DateTimeField en un modelo principal con Django

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

¿Esto funcionará, y si me lo puede explicar, por qué? Si no, ¿cómo lo lograría?

Respuesta

6

También deberá guardar el mensaje. Entonces eso debería funcionar.

1

Los campos de DateTime con auto_now se actualizan automáticamente al llamar al save(), por lo que no es necesario que los actualice manualmente. Django hará este trabajo por ti.

0

versión correcta de trabajo 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() 
Cuestiones relacionadas