[英]Issues with auth_user table in django
我想在Django中更新auth_user表的某些字段。 實際上我正在將一些用戶從一個網站遷移到另一個網站,所以我想更新auth_user表中的密碼字段。但是當我使用更新查詢時,它給了我一些錯誤
我嘗試過的一些東西
values=User.objects.get(username=request.POST['username'])
values.password=request.POST['password']
values.password.save()
它給出了“ unicode”對象沒有屬性“ save”的錯誤
如果我嘗試了這個
values=User.objects.get(username=request.POST['username']).update(password=request.POST['password'])
那么錯誤是“用戶”對象沒有屬性“更新”
實際上,我不想發送電子郵件給用戶以更新其密碼並將其重定向到“忘記密碼”頁面。 但是,每當用戶嘗試登錄站點時,如果他的密碼不匹配,但他正確輸入了密碼,但是由於遷移,他的密碼在django中不起作用,則必須在auth_user表中更新他輸入的密碼(加密密碼)。
在兩者之間,我必須確保該用戶是先前站點的身份驗證用戶。
因此,請以某種方式建議我,以便我可以在auth_user表中更新他的密碼。
django中的密碼存儲為sha256哈希,因此設置
user.password = 'new password'
這不是一個好主意。 幸運的是,django提供了可以對您的密碼進行哈希處理的方法。 第二件事:
values.password.save()
在這里,您嘗試對密碼對象(不是字符串,而是用戶對象)執行save()方法。 values.save()
會更好,但仍然不正確。 您要做的是:
values.set_password('new password') # Takes care of hashing
values.save()
(代表OP)
我用了這個問題就解決了
u = User.objects.get(username__exact='john')
u.set_password('new password')
u.save()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.