Python 为什么我的django注册表没有通过是有效的()
我是Django的新手,正在学习如何构建注册视图的教程。我做了完全相同的操作,但我的表单没有通过表单。是否有效() 以下是我所做的: forms.pyPython 为什么我的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
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哦,谢谢。它起作用了。问题似乎是密码与用户名太相似。很高兴你找到了答案。但是,如果不将实际的验证错误显示回模板,则项目是不完整的。签出下面其他人的答案,写出完整的视图。