请问我是Django的新手,而且用户注册让我头疼。 UserCreationForm显示在页面上,但即使我故意输入错误并提交密码也不会显示任何错误,它只会刷新。与登录页面不同,它不会显示诸如密码太短之类的错误。
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/',include('django.contrib.auth.urls')),
path('',include('account.urls')),
]
from django.urls import path
from .views import home,register
urlpatterns = [
path('',home,name='home'),
path('register/',register,name='register'),]
from django.shortcuts import render,redirect
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import authenticate,login
def home(request):
return render(request,'base.html')
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data['username']
password = form.cleaned_data['password1']
user =authenticate(username=form,password=password)
login(request,user)
return redirect('home')
else:
form = UserCreationForm()
form = UserCreationForm()
return render(request,'registration/register.html',{'form':form})
+templates
+registration
+register.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Register</title>
</head>
<body>
<h1>Registration Page</h1>
<form method="POST" action="{%url 'register' %}">
{%csrf_token %}
{% if form.errors %}
<p>There are errors in the form </p>
{% endif %}
{{form}}
<button type="submit" name="button">Submit</button>
</form>
</body>
</html>
答案 0 :(得分:0)
您的注册视图中还有一个form = UserCreationForm()
。
尝试将其删除,以便您可以使用:
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data['username']
password = form.cleaned_data['password1']
user =authenticate(username=form,password=password)
login(request,user)
return redirect('home')
else:
form = UserCreationForm()
return render(request,'registration/register.html',{'form':form})