我需要創建一個系統,在該系統中,用戶必須每隔“ 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
提交
取消