无法在 Django 模板文件的 for 循环中使用条件标签
Not able to use conditional tags in for loop in Django template file
我正在使用 Django 1.4/python 2.7.9(因为我需要,我知道 1.4 现在已经很老了)而且我对 django/python 还很陌生。在我的模板文件中,我似乎无法在 for 循环中使用任何很酷的条件标记,例如 ifchanged 或 ifequal。
例如:
{% for asample in allsamples %}
{% ifchanged asample.brand %}
<h2>{{ asample.brand }}</h2>
{% endifchanged %}
{% endfor %}
这会引发错误 "Encountered unknown tag 'ifchanged'. Jinja was looking for the following tags: 'endfor' or 'else'. The innermost block that needs to be closed is 'for'."
我也在那里尝试过 ifequals - 同样的错误。是否有什么东西阻止我在 for 循环中使用其他标签?
如果您询问 jinja2
解决方案,您可以使用 if/else
和 set
:
解决此问题
{% for asample in allsamples %}
{% if asample.brand != last_brand %}
<h2>{{ asample.brand }}</h2>
{% set last_brand = asample.brand %}
{% endif %}
{% endfor %}
我正在使用 Django 1.4/python 2.7.9(因为我需要,我知道 1.4 现在已经很老了)而且我对 django/python 还很陌生。在我的模板文件中,我似乎无法在 for 循环中使用任何很酷的条件标记,例如 ifchanged 或 ifequal。
例如:
{% for asample in allsamples %}
{% ifchanged asample.brand %}
<h2>{{ asample.brand }}</h2>
{% endifchanged %}
{% endfor %}
这会引发错误 "Encountered unknown tag 'ifchanged'. Jinja was looking for the following tags: 'endfor' or 'else'. The innermost block that needs to be closed is 'for'."
我也在那里尝试过 ifequals - 同样的错误。是否有什么东西阻止我在 for 循环中使用其他标签?
如果您询问 jinja2
解决方案,您可以使用 if/else
和 set
:
{% for asample in allsamples %}
{% if asample.brand != last_brand %}
<h2>{{ asample.brand }}</h2>
{% set last_brand = asample.brand %}
{% endif %}
{% endfor %}