2015-04-20 17 views
1

我有表:如何爲兩個forloops設置一個計數器?

{% for item in items %} 
    <tr> 
     <td>{{ forloop.counter }}</td> 
     <td>{{ item.field }}</td> 
    </tr> 
    {% for child in item.childs.all %} 
     <tr> 
      <td>{{ forloop.counter }}</td> 
      <td>{{ child.field }}</td> 
     </tr> 
    {% endfor %} 
{% endfor %} 

但從1.第二循環內的第二forloop.counter計數我想只有一個所有行櫃檯。怎麼做?

回答

3

你可以write a custom template tag計算計數器(假設每行都有平等的列數):

@register.simple_tag 
def abs_counter(row, col, col_total) 
    return return ((row - 1) * col_total) + col 

{% for item in items %} 
... 
    {% for child in items.children.all %} 
     {% abs_counter forloop.parentloop.counter forloop.counter items.children.all|length %} 
    {% endfor %} 
{% endfor %} 
相關問題