【问题标题】:Updating an auto_now DateTimeField in a parent model in Django在 Django 的父模型中更新 auto_now DateTimeField
【发布时间】:2010-09-06 11:05:36
【问题描述】:

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

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

这行得通吗?如果您能向我解释一下,为什么?如果没有,我将如何实现?

【问题讨论】:

    标签: python database django orm


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-04-01
          • 2021-07-06
          • 1970-01-01
          • 1970-01-01
          • 2019-04-15
          • 1970-01-01
          • 2013-10-22
          • 1970-01-01
          相关资源
          最近更新 更多