如何为两个 for 循环设置一个计数器?
Posted
技术标签:
【中文标题】如何为两个 for 循环设置一个计数器?【英文标题】:How to set one counter for two forloops? 【发布时间】:2015-06-27 20:25:51 【问题描述】:我有桌子:
% 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 %
但是第二个 forloop.counter 在第二个循环中从 1 开始计数。我只想为所有行获取一个计数器。怎么做?
【问题讨论】:
【参考方案1】:您可以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 %
【讨论】:
以上是关于如何为两个 for 循环设置一个计数器?的主要内容,如果未能解决你的问题,请参考以下文章