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?

Foi útil?

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()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top