0
我對使用AdminPasswordChangeForm
更改密碼沒有太多想法。我有一個教程,發現這個片斷:使用Django中的AdminPasswordChangeForm更改密碼時出現錯誤
def user_change_password(request, id):
form = AdminPasswordChangeForm(User, request.POST)
if form.is_valid():
new_user = form.save()
msg = _('Password changed successfully.')
request.user.message_set.create(message=msg)
return HttpResponseRedirect('..')
else:
form = AdminPasswordChangeForm(User)
extra_context = {
'form': form,
'change': True
}
return direct_to_template(request,"users/user_password_change.html",
extra_context = extra_context)
一切都很好,與url.py
和模板user_password_chage.html
。在模板級別,它顯示一個帶有兩個密碼字段的表單:一個是密碼,第二個是密碼(再次)。但是,當我點擊提交按鈕來修改它顯示了以下錯誤的密碼:
unbound method set_password() must be called with User instance as first argument (got unicode instance instead)
我是一個新手,Django的,並沒有發現有關這種形式在官方文檔任何東西。
感謝您的答覆。我通過一個ID來更改他/她的密碼。所以根據這一點,我必須先找出與id相關的用戶名,然後在函數中傳遞該用戶名? 除此之外,如果我還必須改變is_staff選項爲相同的ID那麼我該怎麼辦? –
不,不是用戶名,用戶實例。 User.objects.get(PK = my_id)會做到這一點。 –
它運行成功,更改is_staff選項 –