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选项 –