我需要創(chuàng)建一個系統(tǒng),在該系統(tǒng)中,用戶必須每隔“ x”天數(shù)更改一次密碼。我設法通過保存一個UTC時間戳來實現(xiàn)此目的,該時間戳代表用戶創(chuàng)建/修改密碼的時間。我的問題是,不是通過在數(shù)據(jù)庫中保存時間戳,而是可以通過django的一些內(nèi)置函數(shù)獲取表示字段更改時間的時間戳?這樣,我可以訪問用戶上次更新密碼的時間,而無需在模型中添加專用字段以在其中保存時間戳。
1 回答

開心每一天1111
TA貢獻1836條經(jīng)驗 獲得超13個贊
不,沒有字段顯示您在哪個時間更新了哪個字段,您應該自行實現(xiàn)
您應該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
提交
取消