在Django模板文件中无法在for循环中使用条件标记

时间:2015-03-17 14:55:04

标签: python django-templates jinja2

我使用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 %}

这会引发错误&#34;遇到未知标记&#39; ifchanged&#39;。 Jinja正在寻找以下标签:&#39; endfor&#39;或者&#39;否则&#39;。需要关闭的最里面的块是&#39;对于&#39;。&#34;

我也试过过ifequals - 同样的错误。有什么东西阻止我在for循环中使用其他标签吗?

1 个答案:

答案 0 :(得分:0)

如果您询问jinja2解决方案,可以使用if/elseset来解决问题:

{% for asample in allsamples %}
    {% if asample.brand != last_brand %}
        <h2>{{ asample.brand }}</h2>
        {% set last_brand = asample.brand %}
    {% endif %}
{% endfor %}