在Django模板中声明变量和if语句

时间:2014-03-25 09:08:41

标签: python django django-templates

我正在用python Django开发一个应用程序 我需要做的是根据模板中的计数器变量值为div分配一个类

  {% with 1 as counters %}  
     {% for importance in all_importance %}

            {% if counters == 1 %}
                <div class="item active" >
            {% else %}
                <div class="item" >         
            {% endif %} 
            {% for image in importance.subtypemodelimage_set.all %}
                <img src="{{ image.image.url }}" />
            {% endfor %}

        </div>
        {% counters += 1 %} 
     {% endfor %}
  {% endwith %}

但我面对这个问题

  Invalid block tag: 'counters', expected 'empty' or 'endfor'

我在哪里弄错了,先谢谢你的帮助

2 个答案:

答案 0 :(得分:4)

for循环设置了循环中可用的一些变量(django docs here中的完整列表):

...
forloop.first   True if this is the first time through the loop
forloop.last    True if this is the last time through the loop
...

您可以使用forloop.first检查第一次循环迭代:

{% for importance in all_importance %}

    {% if forloop.first %}
        <div class="item active" >
    {% else %}
        <div class="item" >         
    {% endif %} 

    {% for image in importance.subtypemodelimage_set.all %}
        <img src="{{ image.image.url }}" />
    {% endfor %}

        </div>

 {% endfor %}

答案 1 :(得分:1)

问题在于

{% counters += 1 %}

没有标记counters。您将变量解释为标记。 更多的是你无法在django模板中实现那种for循环。