use*_*875 1 django django-templates django-forms django-views
我有一个名为“用户”的模型,并且有一个名为“ UsersForm”的模型。在views.py中,我创建了一个UsersForm版本,如下所示
form = UsersForm()
if reqest.method == POST:
form = UsersForm(request.POST)
if form.is_valid():
form.save()
c = {}
c.update(csrf(request))
c.update({'form':form})
return render_to_response('home_page.html', c)
Run Code Online (Sandbox Code Playgroud)
现在,我的home_page.html是这样的:
<html>
<body>
<form method="post" action="">{% csrf_token %}
{{ form }}
<input type="submit" value="Register"/>
</form>
{% if form.errors %}
{% for field in form %}
<p> {{field.errors}} </p>
{% endfor %}
{% endif %}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
因此,我想要的是,我只想显示{{field.errors}}中的第一个错误。我在想的是这样的:
{% if form.errors %}
{% for field in form %}
<p> {{field.errors}} </p> {{ break}}
{% endfor %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
但是Django模板语言没有中断,对吧?我还尝试过考虑使用{%for form | slice:“:1”%}中的字段,但这也不起作用。有人知道怎么做吗?
您可以使用点表示法在Django模板中为列表编制索引:
{{ field.errors.0 }}
Run Code Online (Sandbox Code Playgroud)
不过,在执行此操作之前,请务必检查是否至少有1个错误,否则您将得到“索引超出范围”错误。
| 归档时间: |
|
| 查看次数: |
1926 次 |
| 最近记录: |