交替行的Django模板循环 - 没有循环

Her*_*aaf 5 django django-templates

也许这是一个非问题,但是{% cycle %}如果你不在循环中,你如何利用Django 功能或类似的东西呢?具体来说,我有一个HTML表,我正在手写,因为它不是你需要在循环中做的事情.我希望行交替,如下所示:

   <tr class="{% cycle 'even' 'odd'%}"></tr>
   <tr class="{% cycle 'even' 'odd'%}"></tr>
   <tr class="{% cycle 'even' 'odd'%}"></tr>
Run Code Online (Sandbox Code Playgroud)

但我没有使用循环,所以这总是导致even.我不希望以后想要插入一行,然后必须手动更改其下所有行的类.我只是小气吗?如何在没有循环的情况下循环?

Dan*_*olo 10

有一节致力于在文档cycle上使用循环外部:

在某些情况下,您可能希望从循环外部引用循环的下一个值.要执行此操作,只需使用"as"为{%cycle%}标记指定名称,如下所示:

{% cycle 'row1' 'row2' as rowcolors %}
Run Code Online (Sandbox Code Playgroud)

从那时起,您可以通过将循环名称作为上下文变量引用,在模板中的任何位置插入循环的当前值.如果要将循环移动到下一个值,则使用变量名称再次使用循环标记.那么,以下模板:

<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>
Run Code Online (Sandbox Code Playgroud)

输出:

<tr>
    <td class="row1">...</td>
    <td class="row1">...</td>
</tr>
<tr>
    <td class="row2">...</td>
    <td class="row2">...</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下,你只需要声明一次,然后调用{% cycle name %}每一行.