模板标记出错:无效的块标记

时间:2013-08-29 13:40:00

标签: django django-templates

与CreateView相比,我尝试使用稍微不同的UpdateView输出模板,我使用此模板代码删除UpdateView中的密码字段

我的模板代码如下:

{% for field in form %}
<div id="{{ field.auto_id }}_container">
{{ field.help_text }}
<div>
{% if customuser.id and field.label != 'Create your password' or
customuser.id and field.label != 'Confirm your password' %}

{{ field.label_tag }} {{ field }}

{% else %}

{{ field.label_tag }} {{ field }}

{% endif %}
</div>
<div id="{{ field.auto_id }}_errors">
{{ field.errors }}
</div>
</div>
{% endfor %}

我收到错误无效的块标记:'else',预期'empty'或'endfor'。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

如果您使用的是最近的Django,https://github.com/django/django/commit/4aa97f5c18引入了{%empty%}块,允许您编写

{% for athlete in athlete_list %}
    ...
 {% empty %}
   No athletes
{% endfor %}

当您想要做的事情涉及迭代非空列表时很有用。

答案 1 :(得分:0)

你不能在{% if ... %}模板标签(或实际上的任何标签)内断行。你应该把它全部放在一行:

{% if customuser.id and field.label != 'Create your password' or customuser.id and field.label != 'Confirm your password' %}