Python django:uu init_uu()缺少1个必需的位置参数:';用户';
我正在尝试将PasswordChangeForm添加到我的项目中,但出现错误: “init()缺少1个必需的位置参数:'user'” 我怎样才能修好它? 我的看法是: 和我的html文件:Python django:uu init_uu()缺少1个必需的位置参数:';用户';,python,python-3.x,django,Python,Python 3.x,Django,我正在尝试将PasswordChangeForm添加到我的项目中,但出现错误: “init()缺少1个必需的位置参数:'user'” 我怎样才能修好它? 我的看法是: 和我的html文件: {% extends 'main/layout.html' %} {% block title %} Изменение пароля {% endblock %} {% block content %} <div class="user_content">
{% extends 'main/layout.html' %}
{% block title %} Изменение пароля {% endblock %}
{% block content %}
<div class="user_content">
<form method="post">
{% csrf_token %}
{{ password_form.as_p }}
<center><button type="submit">Сохранить</button></center>
</form></div>
{% endblock %}
{%extends'main/layout.html%}
{%block title%}ззаааааа{%endblock%}
{%block content%}
{%csrf_令牌%}
{{password\u form.as\u p}
Сохранить
{%endblock%}
我想,我的错误就在眼前,但我找不到它。
PasswordChangeForm
不是一个ModelForm
,而是一个Form
。查看它的\uuuu init\uuuu
方法,它被声明为:
这意味着您需要将用户作为第一个位置参数或关键字参数传递。因此,你的观点应该是:
def password_change_view(request):
if request.method == 'POST':
pass_form = PasswordChangeForm(user=request.user, data=request.POST)
if pass_form.is_valid():
pass_form.save()
return redirect('users/login')
else:
pass_form = PasswordChangeForm(user=request.user)
return render(request, 'users/change_password.html', {'password_form': pass_form})
def __init__(self, user, *args, **kwargs):
...
def password_change_view(request):
if request.method == 'POST':
pass_form = PasswordChangeForm(user=request.user, data=request.POST)
if pass_form.is_valid():
pass_form.save()
return redirect('users/login')
else:
pass_form = PasswordChangeForm(user=request.user)
return render(request, 'users/change_password.html', {'password_form': pass_form})