2008-08-21 119 views
9

我有两个模型:消息和附件。使用附件模型上的ForeignKey将每个附件附加到特定消息。两种模型都有一个名为更新的auto_now DateTimeField。我试图做到这一点,以便当保存任何附件时,它还将关联消息上的更新字段设置为现在。这是我的代码:更新父模型中的auto_now DateTimeField w/Django

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

请问这项工作,如果你能解释给我,为什么?如果不是,我将如何实现这一目标?

回答

6

您还需要保存该消息。那么它应该工作。

1

带有auto_now的DateTime字段在调用save()时自动更新,因此您不需要手动更新它们。 Django会为你做这项工作。

0

正确版本的工作是:(注意最后一行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()