【问题标题】:updated at field in django model在 django 模型的字段中更新
【发布时间】:2015-09-14 13:38:17
【问题描述】:

我在 django 模型中有一个 updated_at 字段,如下所示:

class Location(models.Model):
    updated_at = models.DateTimeField(auto_now=True, default=timezone.now())

如果模型刚刚创建,它会在 updated_at 字段中保存模型首次创建时的当前时间。如果模型在过去一小时内更新,我将使用它来做一些特别的事情。问题是我只想在过去一小时内更新模型而不是创建模型时这样做。如何区分模型是在过去一小时内更新还是模型是在过去一小时内创建的?

【问题讨论】:

标签: python django


【解决方案1】:

我只会在模型上有 2 个字段,一个用于创建,一个用于记录更新时间

class Location(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

如果您使用 django-model-utils,您可以将 TimeStampedModel 子类化,它既有创建字段也有修改字段。

#Django model utils TimeStampedModel
class TimeStampedModel(models.Model):
    """
    An abstract base class model that provides self-updating
    ``created`` and ``modified`` fields.

    """
    created = AutoCreatedField(_('created'))
    modified = AutoLastModifiedField(_('modified'))

    class Meta:
        abstract = True

class Location(TimeStampedModel):
    """
    Add additional fields
    """

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-04-06
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
  • 2016-06-10
  • 2017-05-06
  • 2020-01-26
  • 2020-11-20
相关资源
最近更新 更多