与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'。
感谢您的帮助!
答案 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' %}