我有两个模型:消息和附件。使用附件模型上的ForeignKey将每个附件附加到特定消息。两个模型都有一个名为updated的auto_now DateTimeField。我正在尝试这样做,以便在保存任何附件时,它还会将关联消息的更新字段设置为现在。这是我的代码:
def save(self):
super(Attachment, self).save()
self.message.updated = self.updated
这会有效,如果你可以向我解释,为什么?如果没有,我将如何做到这一点?
答案 0 :(得分:6)
您还需要保存邮件。然后它应该工作。
答案 1 :(得分:1)
带有auto_now的DateTime字段会在调用save()
时自动更新,因此您无需手动更新它们。 Django会为你做这项工作。
答案 2 :(得分:1)
正常使用的版本是:(注意最后一行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()