我有django模板,其中我将表单错误输入属性errors
作为html
form.html
{% if form.errors %}
<div class="span12">
{{form.errors}}
</div>
{% endif %}
上述模板代码的输出类似于
HTML
<ul class="errorlist">
<li>price
<ul class="errorlist">
<li>price is required</li></ul>
</li>
<li>name
<ul class="errorlist">
<li>name is required</li>
</ul>
</li>
<li>description
<ul class="errorlist">
<li>description is required</li>
</ul>
</li>
设计
price
price is required
name
name is required
description
description is required
但我希望以下面的格式显示输出
{% if form.errors %}
<div class="span12">
{% for error in form.errors %}
{{key}} : {{value}}
{% endfor %}
</div>
{% endif %}
必需/需要输出
price : price is required
name : name is required
description : description is required
任何人都可以告诉我如何访问/使用form.errors
属性以便以上述格式打印/显示结果吗?
修改
否则我们可以从下面的视图中发送错误字典
def render_view(request):
form = Form()
if form.is_valid():
.....
.....
render_to_response('template.html',{'errors':dict(form.errors)})
在 template.html
中{% if errors %}
{% for key in errors %}
{{key}} : {{errors.key}}
{% endfor %}
{% endif %}
{%endif%}
但是在这种情况下,字典中的键的值没有显示,那么如何访问它?
答案 0 :(得分:0)
因为我记得form.errors就像对象一样dict所以你可以尝试迭代它。
{% if errors %}
{% for key, error_list in errors.iteritems %}
{{key}} : {{error_list}}
{% endfor %}
{% endif %}
如果你会这样迭代
{% if errors %}
{% for key in errors %}
{{key}} : {{errors}}
{% endfor %}
{% endif %}
您将迭代字典键,因此请考虑使用items
或iteritems
答案 1 :(得分:-1)
不是很优雅,但可以试试这个:
{% for field in form %}
{% if field.errors %}
{{field.label}} : {{field.errors}}
{% endif %}
{% endfor %}