将值循环到django模板中的div

时间:2012-10-27 06:10:04

标签: django django-templates

我有一个包含9个值的表。我想遍历表格并将结果放入模板中的div结构中。

我尝试cycle通过它们,但我无法将它们放入不同的div中。

以下内容适用于在两个地方放置相同的值。如何增加到下一个group_nm?

{% for g in groups %}

    <div class="left1">
            <a href="/group/{{ g.group_nm }}">
        <img src="/site_media/images/groups/{{ g.group_nm }}.gif" height="125px" width="200em" />
            </a>
    <p align="center">    
        <font size="5" face="Georgia, Arial" color="maroon">
            {{ g.group_nm }}
        </font>
    </p>
    </div>

    <div class="left2">
            <a href="/group/{{ g.group_nm }} ">
        <img src="/site_media/images/groups/{{ g.group_nm }}.jpg" height="125px" width="200em" />
            </a>
    <p align="center">          
        <font size="5" face="Georgia, Arial" color="maroon">
            {{ g.group_nm }}
        </font>
    </p>         
    </div>

感谢。

编辑:我希望用9组进行此操作(最终,在另一个地方,我希望以无限数量进行此操作)。上面的例子只显示了重复的2个例子。

3 个答案:

答案 0 :(得分:2)

你可以使用forloop.counter值来创建类名(假设它们被命名为left1,left2,left3,left4,left5等):

{% for g in groups %}
      <div class="left{{ forloop.counter }}">
         <a href="/group/{{ g.group_nm }}">
         <img src="/site_media/images/groups/{{ g.group_nm }}.gif" height="125px" width="200em" />
         </a>
         <p align="center">    
             <font size="5" face="Georgia, Arial" color="maroon">
                {{ g.group_nm }}
             </font> 
         </p>
       </div>
{% endfor %}

答案 1 :(得分:1)

您可以在模板中执行此操作:

{% for g in groups %}
    {% if forloop.counter|divisibleby:"2" %}
      <div class="left1">
         <a href="/group/{{ g.group_nm }}">
         <img src="/site_media/images/groups/{{ g.group_nm }}.gif" height="125px" width="200em" />
         </a>
         <p align="center">    
             <font size="5" face="Georgia, Arial" color="maroon">
                {{ g.group_nm }}
             </font> 
         </p>
       </div>
    {% else %}
        <div class="left2">
           <a href="/group/{{ g.group_nm }} ">
              <img src="/site_media/images/groups/{{ g.group_nm }}.jpg" height="125px" width="200em" />
           </a>
           <p align="center">          
               <font size="5" face="Georgia, Arial" color="maroon">
                    {{ g.group_nm }}
               </font>
           </p>         
        </div>
    {% endif %}
{% endfor %}

答案 2 :(得分:0)

解决了它,但前提是我知道将返回的行数。这不适用于无限数量,并不像我想要的那样优雅,但它会做。

我使用了django google group.

中找到的ifequal forloop.counter
<body>
{% for g in groups %}
    {% ifequal forloop.counter 1 %}
    <div class="left1">+
            <a href="/group/{{ g.group_nm }}">
        <img src="/site_media/images/groups/{{ g.group_nm }}.gif" height="125px" width="200em" />
            </a>
    <p align="center">    
        <font size="5" face="Georgia, Arial" color="maroon">
            {{ g.group_nm }}
        </font>
    </p>
    </div>
    {% endifequal  %}
    {% ifequal forloop.counter 2 %}  
    <div class="left2">
            <a href="/group/{{ g.group_nm }} ">
        <img src="/site_media/images/groups/{{ g.group_nm }}.jpg" height="125px" width="200em" />
            </a>
    <p align="center">          
        <font size="5" face="Georgia, Arial" color="maroon">
            {{ g.group_nm }}
        </font>
    </p>         
    </div>

    {% endifequal  %}
    {% ifequal forloop.counter 3 %}  
    <div class="left3">
            <a href="/group/{{ g.group_nm }} ">
       <img src="/site_media/images/groups/{{ g.group_nm }}.gif" height="125px" width="200em" />
            </a>
    <p align="center">
        <font size="5" face="Georgia, Arial" color="maroon">
            {{ g.group_nm }}
        </font>     
    </p>            
    </div>
</div> 

    {% endifequal  %}

并通过所有9个小组。