如果密码不匹配,则使用默认UserCreationForm不会显示错误



如果密码不匹配,则使用django.contrib.auth.forms中的默认UserCreationForm不会显示错误。我不想创建自定义模型。

这是我的views.py文件中的代码

from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import render
# Create your views here.
def register(response):
if response.method == "POST":
print(response.POST)
form = UserCreationForm(response.POST)
if form.is_valid():
form.save()
else:
print(form.errors)
form = UserCreationForm()
return render(response,"register/register.html",{"form":form})

register.html代码

<html> 
<head>
<title>Register </title>    
</head>
<body> 
<h1>This is the Registration page</h1>
<form method="post">
{% csrf_token %}
{{form.as_p}}
<button type="submit">Submit</button>
</form>
</body>
</html>

我以为信息会自动显示。我是不是错过了什么?编辑:没有显示任何错误消息,如密码长度<8、所有数字密码等

每次创建新的表单时,都应该呈现无效的表单:

from django.shortcuts import redirect

def register(response):
if response.method == 'POST':
form = UserCreationForm(response.POST)
if form.is_valid():
form.save()
return redirect('name-of-some-view')
else:
form = UserCreationForm()  # 🖘 only for a GET request
return render(response, 'register/register.html', {'form': form})

注意:如果POST请求成功,您应该发出redirect[Django-doc]来实现POST/Rerect/Get模式[wiki]。这样可以避免在用户刷新浏览器

相关内容

  • 没有找到相关文章

最新更新