atualizando um auto_now DateTimeField em um modelo pai com Django
Pergunta
Tenho dois modelos:Mensagem e anexo.Cada anexo é anexado a uma mensagem específica, usando uma ForeignKey no modelo Attachment.Ambos os modelos possuem um auto_now DateTimeField chamado atualizado.Estou tentando fazer com que, quando qualquer anexo for salvo, ele também defina o campo atualizado na mensagem associada como agora.Aqui está meu código:
def save(self):
super(Attachment, self).save()
self.message.updated = self.updated
Isso funcionará, e se você puder me explicar, por quê?Se não, como eu conseguiria isso?
Solução
Você também precisaria salvar a mensagem.Então isso deve funcionar.
Outras dicas
Os campos DateTime com auto_now são atualizados automaticamente ao chamar save()
, então você não precisa atualizá-los manualmente.Django fará esse trabalho para você.
A versão adequada para funcionar é:(atenção à última linha 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()