在django模型中的字段更新

hyrbngr7  于 2023-02-14  发布在  Go
关注(0)|答案(1)|浏览(258)

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

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

如果模型是刚创建的,它会在updated_at字段中保存第一次创建模型的当前时间。如果模型是在过去一小时内更新的,我会使用此选项来执行一些特殊操作。问题是,我只想在模型是在过去一小时内更新的情况下执行此操作,而不想在模型是创建的情况下执行此操作。如何区分模型是在过去一小时内更新的还是在过去一小时内创建的?

dvtswwa3

dvtswwa31#

模型上只有两个字段,一个用于创建,另一个用于记录更新时间,如下所示

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
    """

相关问题