访问字段已更新的时间(Django模型)

时间:2018-07-09 07:37:40

标签: python django django-models

我需要创建一个系统,其中用户必须每隔“ x”天数更改一次密码。通过保存代表用户创建/修改密码时间的UTC时间戳,我设法实现了这一目标。

我的问题是,不是通过将时间戳保存在数据库中,而是可以通过django的一些内置函数来获取表示字段更改时间的时间戳?这样,我可以访问用户上次更新密码的时间,而不必在模型中添加专用字段以在其中保存时间戳。

1 个答案:

答案 0 :(得分:0)

否,没有字段显示您在哪个时间更新了哪个字段,您应该自行实现

您应该在各处使用set_password来管理更新密码时间

password_updated_at = models.DateTimeField(_('password updated at'))

def set_password(self, raw_password):
    r = super(User, self).set_password(raw_password=raw_password)
    self.password_updated_at = timezone.now()
    self.save()
    return r

def is_password_updated_at_expired(self):
    duration = (timezone.now() - self.password_updated_at).total_seconds()
    return duration > settings.PASSWORD_UPDATE_EXPIRE_TIME, duration