0

与 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'。

感谢所有的帮助!

4

2 回答 2

0

您不能在{% if ... %}模板标签(或任何标签,实际上)内换行。您应该将所有内容集中在一行中:

{% if customuser.id and field.label != 'Create your password' or customuser.id and field.label != 'Confirm your password' %}
于 2013-08-29T14:09:55.470 回答
0

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

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

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

于 2013-08-29T13:53:52.153 回答