我在django模型中有一个updated_at字段,如下所示:
class Location(models.Model):
updated_at = models.DateTimeField(auto_now=True, default=timezone.now())
如果刚刚创建了模型,它将保存在updated_at字段中首次创建模型时的当前时间。如果模型在过去一小时内更新,我正在使用它做一些特别的事情。问题是,如果模型在过去一小时内更新,我不想这样做,而不是模型是否已创建。如何区分模型是否在过去一小时内更新,或者模型是否在过去一小时内创建?
答案 0 :(得分:13)
我只在模型上有两个字段,一个用于创建,另一个用于记录更新的时间,如此
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
"""