oppdaterer en auto_now DateTimeField i et overordnet modell w / Django

stemmer
9

Jeg har to modeller: Melding og vedlegg. Hvert feste er festet til en bestemt melding, ved hjelp av en fremmednøkkel på feste modell. Begge modellene har en auto_now DateTimeField kalt oppdatert. Jeg prøver å gjøre det slik at når noen Vedlegget lagres, det også setter den oppdaterte feltet på den tilhørende melding til nå. Her er min kode:

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

Vil dette arbeidet, og hvis du kan forklare det for meg, hvorfor? Hvis ikke, hvordan ville jeg gjøre dette?

Publisert på 21/08/2008 klokken 19:41
kilden bruker
På andre språk...                            


3 svar

stemmer
6

Du vil også trenge å lagre meldingen. Da er det som skal fungere.

Svarte 21/08/2008 kl. 19:57
kilden bruker

stemmer
1

Datetime felt med auto_now blir automatisk oppdatert ved å kalle save(), så du trenger ikke å oppdatere dem manuelt. Django vil gjøre dette arbeidet for deg.

Svarte 16/09/2008 kl. 13:44
kilden bruker

stemmer
0

Riktig versjon til arbeid er: (oppmerksomhet til siste linje 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()
Svarte 31/10/2015 kl. 08:11
kilden bruker

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