Kev*_*dez 5 python forms django jinja2
我已刷新此 stackoverflow页面,并尝试在html模板上显示我的表单错误。我做了:
{% if form.error %}
{% for field in form %}
{% for error in field.errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endfor %}
{% for error in form.non_field_errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
正如在stackoverflow问题中所说的,我也尝试简单地做:
{% if form.error %}
This should pop up if there is an error
{% endif %}
Run Code Online (Sandbox Code Playgroud)
无论如何,什么都没有发生:这是我的view.py代码:
{% if form.error %}
{% for field in form %}
{% for error in field.errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endfor %}
{% for error in form.non_field_errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
我能够将表单错误显示在django控制台上,但它拒绝显示在模板上。
将打印form.errors件打印到控制台:<li>password2<ul class="errorlist"><li>The two password fields didn't match.</li></ul></li></ul>
forms.errors启动,但是最后,您form = UserCreationForm()在呈现视图之前声明了一个新表单。
在检查验证码是否form有效之后,所有验证错误都在form实例内部,记住进程按顺序运行,最后,销毁变量form,form = UserCreationForm()因此不再有验证错误。
您可以做的是,form = UserCreationForm()当您的请求方法GET保持表格为空时,将此新表格添加到else语句中。通过添加else语句,可以避免表单的新分配;在经过验证的过程,它会跳转到render(request,....)与form包含所有实例验证错误
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password2')
user = authenticate(username=username, password=password)
login(request, user)
return HttpResponseRedirect('/')
else:
print(form.errors)
else:
form = UserCreationForm()
return render(request, 'registration/register.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)
注意,正确的号召形式错误模板是
form.errors与小号不form.error
{% if form.error %} {% if form.errors %}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2630 次 |
| 最近记录: |