Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django:uu init_uu()缺少1个必需的位置参数:';用户';_Python_Python 3.x_Django - Fatal编程技术网

Python django:uu init_uu()缺少1个必需的位置参数:';用户';

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">

我正在尝试将PasswordChangeForm添加到我的项目中,但出现错误:

init()缺少1个必需的位置参数:'user'”

我怎样才能修好它? 我的看法是:

和我的html文件:

{% 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})