Python 表单在django中无效,因为它为空

Python 表单在django中无效,因为它为空,python,django,forms,Python,Django,Forms,我正在尝试设置网站的注册表单,但它不起作用,因为表单为空,因此打印(request.POST)包含所有信息,但表单无效 这是一种观点: def register(request): print("Request submitted", request, request.method) if request.method == 'POST': print (request.POST) form = RegistrationForm(request.P

我正在尝试设置网站的注册表单,但它不起作用,因为表单为空,因此打印(request.POST)包含所有信息,但表单无效

这是一种观点:

def register(request):
    print("Request submitted", request, request.method)
    if request.method == 'POST':
        print (request.POST)
        form = RegistrationForm(request.POST, prefix="user")
        print (form.is_valid())
        print (form.errors)
        if form.is_valid():
            ...
        else:
            print("not valid")

    else:
        form = RegistrationForm(prefix="user")
    return render(request, 'registration_form.html', {'form': form})
这是html:

<body>
    <div class="login">
        <h1>Alta de Usuario</h1>
        {% if messages %}
                {% for message in messages %}
                    <div class="alert">{{ message }}</div>
                {% endfor %}
        {% endif %}
        <form class="login-form" method="post">
            {% csrf_token %}
            <div>
                <label for="username">Nombre de usuario:</label>
                <input type="text" name="username" value="" placeholder="Elige un nombre de usuario">
                <p class="form-valid"><i class="fas fa-check"></i></p>
            </div>
            <div>
                <label for="email">eMail:</label>
                <input type="text" name="email" value="" placeholder="Introduce tu email">
                <p class="form-valid"><i class="fas fa-check"></i></p>
            </div>
            <div>
                <label for="pass">Contraseña:</label>
                <input type="password" name="pass" value="" placeholder="Introduce una contraseña">
                <p class="form-valid"><i class="fas fa-times"></i></p>
            </div>
            <div>
                <label for="pass">Repite contraseña:</label>
                <input type="password" name="pass" value="" placeholder="Repite la contraseña introducida">
                <p class="form-valid"><i class="fas fa-times"></i></p>
            </div>
            <div class="disclaimer">
                <div class="check-terms">
                    <input class="terms" name="terms" type="checkbox">
                    <label for="terms">
                        Acepto los <a href="">términos y condiciones</a>
                    </label>
                </div>
            </div>
            <button class="access" type="submit">Registrarme</button>
        </form>
    </div>
</body>
</html>

{#{{ form.as_p }}#}

乌萨里奥阿尔塔酒店
{%if消息%}
{消息%中的消息为%s}
{{message}}
{%endfor%}
{%endif%}
{%csrf_令牌%}
名称:乌萨里奥:

电邮:

相反的尼娜:

雷皮特·康瑟涅:

阿塞普托洛斯 登记员 {{{form.as_p}}}

非常感谢你的帮助

试着像这样实例化表单:

form=RegistrationForm(data=request.POST,prefix=“user”)
使用以下方法解决:


form=RegistrationForm(request.POST或None)

表单中的内容。错误?
  • 用户名
    • 此字段是必需的。
      • 电子邮件
        • 此字段是必需的。
          • 密码1
            • 此字段是必需的。
            密码2
            • 此字段是必需的。
          request.POST的输出是什么?