2008-08-21 17 views
9

Mam dwa modele: Wiadomość i załącznik. Każdy załącznik jest dołączony do określonej wiadomości za pomocą klucza obcego w modelu załącznika. Oba modele mają zaktualizowaną nazwę auto_now DateTimeField. Próbuję uczynić tak, aby po zapisaniu jakiegokolwiek załącznika, teraz ustawia zaktualizowane pole skojarzonej wiadomości. Oto mój kod:aktualizowanie auto_now DateTimeField w modelu nadrzędnym w/Django

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

Czy to działa i czy możesz mi to wyjaśnić, dlaczego? Jeśli nie, jak to osiągnąć?

Odpowiedz

6

Należy również zapisać wiadomość. To powinno zadziałać.

1

Pola DateTime z auto_now są automatycznie aktualizowane po wywołaniu save(), więc nie trzeba ich aktualizować ręcznie. Django wykona tę pracę za Ciebie.

0

Prawidłowa wersja do pracy jest: (uwaga do ostatniej linii 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() 
Powiązane problemy