13

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

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

这行得通吗?如果你能向我解释一下,为什么?如果没有,我将如何做到这一点?

4

3 回答 3

11

您还需要保存该消息。然后它应该工作。

于 2008-08-21T19:57:36.410 回答
7

正确的工作版本是:(注意最后一行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()
于 2015-10-31T08:11:30.790 回答
1

调用时自动更新带有 auto_now 的 DateTime 字段save(),因此您无需手动更新它们。Django 将为您完成这项工作。

于 2008-09-16T13:44:51.100 回答