Django 的 UserCreationForm 的错误不起作用?



几个月前我做了一个网站,它工作,但类似的代码这次不工作!它返回:ValueError at/registration/无法创建用户,因为数据未验证。这是我的form。py在底部:

class CreateUserForm(UserCreationForm):
class Meta:
model = User
fields = ["username", "email", "password1", "password2"]

我的观点:

from .form import CreateUserForm
def registrationPage(request):
form = CreateUserForm()
if request.method == "POST":
form = CreateUserForm(request.POST)
if form.is_valid:
form.save()
return redirect("login")
else:
form = CreateUserForm()
context = {"form": form}
return render(request, "store/registration.html", context)

以前在HTML中使用:

{{form.errors}}

,它曾经显示页面上的工作,但现在不再显示

根据你上面的评论("我希望django显示错误消息"[如果密码是弱的例子]),你应该把它添加到你的html页面(而不是{{form.errors}})。

<div class="error-message">
{% if form.non_field_errors %} 

{% for error in form.non_field_errors %}
<p style="font-size: 13px;">
{{ error|escape }}
</p>
{% endfor %} 

{% endif %}
</div>

Form.non_field_errors ()这个方法从Form返回错误列表。与特定字段无关的错误。这包括在Form.clean()中引发的ValidationErrors和使用Form添加的错误。add_error(没有,"…")。

当您得到这个错误时,请执行以下操作:

  1. 必须输入强密码,由Django提供。

密码验证规则:

At least 1 digit;
At least 1 uppercase character;
At least 1 lowercase character;
At least 1 special character;

例如:

Example@4089
  1. 在确认密码时出现此错误,您必须在两个字段中输入正确的密码。

  2. 如果用户已经存在,您将面临此错误。

  3. 创建用户时必须检查用户是否存在,如果用户存在,则会出现此错误。

最新更新