【发布时间】:2018-12-11 06:27:00
【问题描述】:
我已引用this 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 %}
正如 stackoverflow 问题中所说,我也尝试过简单地做:
{% if form.error %}
This should pop up if there is an error
{% endif %}
无论如何都不会出现: 这是我的 view.py 代码:
def register(request):
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)
form = UserCreationForm()
return render(request, 'registration/register.html', {'form': form})
我能够将表单错误发送到 django 控制台,但它拒绝显示在模板上。
打印form.errors 打印到控制台:<li>password2<ul class="errorlist"><li>The two password fields didn&#39;t match.</li></ul></li></ul>
【问题讨论】:
标签: python django forms jinja2