也许这不是问题,但是当你不在循环中时,如何使用Django {% cycle %}
功能或类似的功能?具体来说,我有一个HTML表,我正在手写,因为它不是你需要在循环中做的事情。我希望行交替,如下所示:
<tr class="{% cycle 'even' 'odd'%}"></tr>
<tr class="{% cycle 'even' 'odd'%}"></tr>
<tr class="{% cycle 'even' 'odd'%}"></tr>
但我没有使用循环,所以这总是导致even
。我不希望以后想要插入一行,然后必须手动更改其下所有行的类。我只是小气吗?如何在没有循环的情况下循环?
答案 0 :(得分:10)
有一节致力于在the docs上使用cycle
以外的循环:
在某些情况下,您可能希望从循环外部引用循环的下一个值。要执行此操作,只需使用“as”为{%cycle%}标记指定名称,如下所示:
{% cycle 'row1' 'row2' as rowcolors %}
从那时起,您可以通过将循环名称作为上下文变量引用,在模板中的任何位置插入循环的当前值。如果要将循环移动到下一个值,则使用变量名称再次使用循环标记。那么,以下模板:
<tr> <td class="{% cycle 'row1' 'row2' as rowcolors %}">...</td> <td class="{{ rowcolors }}">...</td> </tr> <tr> <td class="{% cycle rowcolors %}">...</td> <td class="{{ rowcolors }}">...</td> </tr>
会输出:
<tr> <td class="row1">...</td> <td class="row1">...</td> </tr> <tr> <td class="row2">...</td> <td class="row2">...</td> </tr>
因此,在您的情况下,您只需声明一次,然后在每一行调用{% cycle name %}
。