Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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注册表没有通过是有效的()_Python_Django - Fatal编程技术网

Python 为什么我的django注册表没有通过是有效的()

Python 为什么我的django注册表没有通过是有效的(),python,django,Python,Django,我是Django的新手,正在学习如何构建注册视图的教程。我做了完全相同的操作,但我的表单没有通过表单。是否有效() 以下是我所做的: forms.py from django import forms from django.contrib.auth.models import User from django.contrib.auth.forms import UserCreationForm class MyRegistrationForm(UserCreationForm): e

我是Django的新手,正在学习如何构建注册视图的教程。我做了完全相同的操作,但我的表单没有通过表单。是否有效()

以下是我所做的:

forms.py

from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm

class MyRegistrationForm(UserCreationForm):
    email = forms.EmailField(required=True)

class Meta:
    model = User
    fields = ('username', 'email', 'password1', 'password2')

def save(self, commit=True):
    user = super(MyRegistrationForm, self).save(commit=False)
    user.email = self.cleaned_data['email']

    if commit:
        user.save()
    return user
views.py

def register_user(request):
    if request.method == 'POST':
        form = MyRegistrationForm(request.POST)
        if form.is_valid():
            user = form.save()
        return HttpResponseRedirect('/accounts/register_success')

    form = MyRegistrationForm()
    return render(request, 'register.html', {'form':form})

def register_success(request):
    return render(request, 'register_success.html')
register.html

{% extends "base.html" %}

{% block content %}

<h2>Register</h2>
<form action="/accounts/register/" method="post">{% csrf_token %}
{{ form }}

<input type="submit" value="Register" />

</form>

{% endblock %}
{%extends“base.html”%}
{%block content%}
登记
{%csrf_令牌%}
{{form}}
{%endblock%}

当我尝试在网页上注册新用户时,他们都没有通过。即使我使用用户名:testuser电子邮件:testuser@example.com密码:testuser123,失败。那怎么了


提前谢谢

您应该遵循正确的视图模式。将行
form=MyRegistrationForm()
放在else块中,然后页面本身会告诉您表单无效的原因。

尝试查看方法
print form.errors
,看看上面怎么说。@ShangWang哦,谢谢。它起作用了。问题似乎是密码与用户名太相似。很高兴你找到了答案。但是,如果不将实际的验证错误显示回模板,则项目是不完整的。签出下面其他人的答案,写出完整的视图。