atualizar um DateTimeField auto_now em um modelo de pai w / Django

votos
9

Eu tenho dois modelos: Mensagem e anexo. Cada ligação é anexado a uma mensagem específica, usando um ChaveEstrangeira no modelo anexo. Ambos os modelos têm um auto_now DateTimeField chamado atualizado. Eu estou tentando fazê-lo de modo que quando qualquer anexo é salvo, ele também define o campo atualizado sobre a mensagem associada ao momento. Aqui está o meu código:

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

Será que este trabalho, e se você pode explicar isso para mim, por quê? Se não, como eu iria fazer isso?

Publicado 21/08/2008 em 20:41
fonte usuário
Em outras línguas...                            


3 respostas

votos
6

Você também precisa, em seguida, salvar a mensagem. Em seguida, ele que deve funcionar.

Respondeu 21/08/2008 em 20:57
fonte usuário

votos
1

Campos de DateTime com auto_now são atualizados automaticamente em chamar save(), para que você não precisa atualizá-las manualmente. Django vai fazer este trabalho para você.

Respondeu 16/09/2008 em 14:44
fonte usuário

votos
0

Versão adequada para o trabalho é: (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()
Respondeu 31/10/2015 em 08:11
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more