有没有办法在 django 模板中迭代列表中的列表?

Posted

技术标签:

【中文标题】有没有办法在 django 模板中迭代列表中的列表?【英文标题】:Is there any way to iterate over list inside list in django template? 【发布时间】:2020-10-18 11:14:51 【问题描述】:

我有一个列表 a = [[1000,3000], [4000-5000]],我想表明它有 1000-3000 4000-5000 在模板中。但我只得到第一个对象。 我尝试的是,

products.html

% for i in price_group %

    <label>
        <input class="uk-radio" type="radio" onchange="$('#form').submit();" name="price" value=" i.0.0 ; i.0.1 ;price;first" checked>
                                             i.0.0  -  i.0.1 
    </label>
       
       price_group.pop.i 
% endfor %

我使用弹出功能从列表中删除当前并获取下一个,但它没有按预期工作。 它只显示列表中的第一个元素。如果我错了,请纠正我。我想要的是它有一个价格范围。 1000-3000 4000-5000 ..同样明智。请帮帮我。

【问题讨论】:

【参考方案1】:

您只访问列表的第一个元素,您需要更新代码以访问所有元素,如下所示:

% for i,j in price_group % 
<label> <input class="uk-radio" type="radio" onchange="$('#form').submit();" name="price" value=" i ; j ;price;first" checked> 
 i  -  j  
</label> 
% endfor %

【讨论】:

您好,感谢您的回答,但如果我按照您所说的方式表达,我会得到类似 [121.0, 1233.0] - [2345.0, 14000.0] 的内容。但我想要的如下 121.0 - 1233, 2345 - 14000 能发一下price_group的数据结构吗? price_group 仅为列表。看起来像这样 [[1000,3000][3000,4000][5000,6000]..] 同样。我想在 html 中显示它的价格范围.. 1000-3000, 3000-4000 一样明智。 您必须解压每个子列表中的值才能迭代列表列表。我已经更新了代码,请尝试一次。 您好,感谢您的更新。现在它以 [121.0, 1233.0] - [2345.0, 14000.0] 的形式出现。我想要的是 121.0 - 1233.0 同样明智。需要访问内部列表值。实际上是价格范围。需要另一个循环吗?

以上是关于有没有办法在 django 模板中迭代列表中的列表?的主要内容,如果未能解决你的问题,请参考以下文章

Django 模板迭代和渲染函数返回的列表中的项目

Django迭代列表中的字典并在模板中显示数据

迭代 Django 模板中的一个 len 列表

如何在 django 模板中迭代字典的列表值

如何在django html模板中迭代列表[重复]

如何在django模板中实现列表迭代[重复]