Django 嵌套循环的迭代总数

Posted

技术标签:

【中文标题】Django 嵌套循环的迭代总数【英文标题】:Total number of iteration for Django nested loops 【发布时间】:2021-11-30 07:08:21 【问题描述】:

示例:django doc

cities = [
    'name': 'Mumbai', 'population': '19,000,000', 'country': 'India',
    'name': 'New York', 'population': '20,000,000', 'country': 'USA',
    'name': 'Calcutta', 'population': '15,000,000', 'country': 'India',
    'name': 'Chicago', 'population': '7,000,000', 'country': 'USA',
    'name': 'Tokyo', 'population': '33,000,000', 'country': 'Japan',
]

% regroup cities by country as country_list %

% for country, local_cities in country_list %
    % for city in local_cities %
       total_number_of_iteration_till_now  city.name :  city.population 
    % endfor %
% endfor %

如何获取每次迭代的内部和外部for循环的总迭代次数?

期望的输出: 印度 1)孟买:19,000,000 美国 2)纽约:20,000,000 印度 3)加尔各答:15,000,000 美国 4)芝加哥:7,000,000 日本 5)东京:33,000,000

forloop.counter 和 forloop.counter0 只返回内部索引

【问题讨论】:

这能回答你的问题吗? How to access outermost forloop.counter with nested for loops in Django templates? 您的目标是什么?也许有更好的方法来实现这一目标...... 我的目标是获取每次迭代的总迭代次数以将其与每个城市一起可视化(在这种情况下) 【参考方案1】:

您可以使用有序列表(<ol>)并跳过不应该编号的项目

<ol>
% for country, local_cities in country_list %
    # this one wont be numbered #
    <li style="list-style-type: none"> country </li>
        % for city in local_cities %
          <li> city.name :  city.population </li>
        % endfor %
    </li>
% endfor %
</ol>

【讨论】:

那么已经在Python中添加了索引,做这种逻辑不属于模板。

以上是关于Django 嵌套循环的迭代总数的主要内容,如果未能解决你的问题,请参考以下文章

Python中的嵌套循环

无法从嵌套for循环访问父for循环

丰富的数据表不能将迭代变量用于嵌套循环

Linux Shell 嵌套循环

L6-2 嵌套循环

使用嵌套循环迭代 m^n 组合[关闭]