Django for循环的倒数第二次

时间:2015-07-30 21:52:16

标签: python django

tabbed_fieldset.html声明:

    if forloop.counter0 > 0 and forloop.last
           #do stuff`

我刚写了一个单独的文件:

for fieldset in adminform
    if not forloop.last
        include "admin/includes/tabbed_fieldset.html"
    else
         include "admin/includes/geo_fieldset.html"
     endif 
 endfor

现在tabbed_fieldset.html的代码已经不再有效了,因为如果它是forloop.last,它甚至不会出现在tabbed_fieldset.html中,它会在geo_fieldset.html

是否有一种简单的方法可以将forloop.last更改为forloop second to last

1 个答案:

答案 0 :(得分:5)

感谢您的代码!查看此网站:https://docs.djangoproject.com/en/1.8/ref/templates/builtins/

  

for循环设置了循环中可用的许多变量:

     

forloop.counter - 循环的当前迭代(1索引)

     

forloop.counter0 - 循环的当前迭代(0索引)

     

forloop.revcounter - 循环结束时的迭代次数(1索引)

     

forloop.revcounter0 - 循环结束时的迭代次数   (0-索引)

     

forloop.first - 如果这是第一次通过循环,则为真

     

forloop.last - 如果这是最后一次循环,则为真

     

forloop.parentloop - 对于嵌套循环,这是围绕当前循环的循环

基本上,您可以使用forloop.revcounterforloop.revcounter0

for fieldset in adminform
    if forloop.revcounter0 > 1
        include "admin/includes/tabbed_fieldset.html"
    else
        include "admin/includes/geo_fieldset.html"
    endif
endfor