Python 在带有Django的父模型中更新auto_now DateTime字段

Python 在带有Django的父模型中更新auto_now DateTime字段,python,database,django,orm,Python,Database,Django,Orm,我有两个模型:消息和附件。每个附件都使用附件模型上的ForeignKey附加到特定的消息。这两种型号都有一个名为“更新”的自动更新日期时间字段。我正试图这样做,当保存任何附件时,它也会将相关邮件上的更新字段设置为“现在”。这是我的密码: def save(self): super(Attachment, self).save() self.message.updated = self.updated 这行得通吗?如果你能向我解释,为什么?如果没有,我将如何完成此操作?您还需要保

我有两个模型:消息和附件。每个附件都使用附件模型上的ForeignKey附加到特定的消息。这两种型号都有一个名为“更新”的自动更新日期时间字段。我正试图这样做,当保存任何附件时,它也会将相关邮件上的更新字段设置为“现在”。这是我的密码:

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

这行得通吗?如果你能向我解释,为什么?如果没有,我将如何完成此操作?

您还需要保存邮件。然后它就可以工作了。

带有auto\u的DateTime字段现在在调用
save()
时会自动更新,所以您不需要手动更新它们。Django将为您完成这项工作。

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