0

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

我试图循环浏览它们,但我无法将它们放入不同的 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个重复的例子。

4

3 回答 3

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 %}
于 2012-10-28T19:04:39.723 回答
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 %}
于 2012-10-27T09:36:07.147 回答
0

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

我使用了在django google 组中找到的 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 个组。

于 2012-10-28T01:05:54.703 回答