我需要创建一个系统,在该系统中,用户必须每隔“ x”天数更改一次密码。我设法通过保存一个UTC时间戳来实现此目的,该时间戳代表用户创建/修改密码的时间。我的问题是,不是通过在数据库中保存时间戳,而是可以通过django的一些内置函数获取表示字段更改时间的时间戳?这样,我可以访问用户上次更新密码的时间,而无需在模型中添加专用字段以在其中保存时间戳。
1 回答

开心每一天1111
TA贡献1836条经验 获得超13个赞
不,没有字段显示您在哪个时间更新了哪个字段,您应该自行实现
您应该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
添加回答
举报
0/150
提交
取消