迭代 Django 模板中数组内的多个列表

Posted

技术标签:

【中文标题】迭代 Django 模板中数组内的多个列表【英文标题】:iterate over multiple lists inside an array in django template 【发布时间】:2014-09-06 03:42:56 【问题描述】:

我有两个东西,第一个是 group,第二个是 group-item。

群组列表为:[<group1: group>, <group2: group>]

组项目列表是:

[[<obj1: obj>, <obj2: obj>], [<obj3: obj>]]

其中第一组对象属于第一组,第二组属于第二组。

我想在Django Template 中迭代这些列表,并且需要这样的输出:

Group1
    obj1
    obj2

Group2
    obj3

任何帮助都可以得到。 谢谢。

【问题讨论】:

您可以在视图中将它们一起zip它们,然后在模板中迭代组合的数据结构。 【参考方案1】:

这当然不是Django 类型的问题,它是python list 操作类型,列表项是Django 对象。所以,这里我将举例说明如何将两个列表对象操作为所需格式。

我假设,

示例输入:

您可以使用django list objects,而不是这些示例输入list

list1 = ['Group1','Group2','Group3']
list2 = [['Item1','Item2'],['Item3','Item4'],['Item5']]

片段:

import itertools
In [19]: for g,i in itertools.izip_longest(list1,list2):
   ....:     print "Group:",g
   ....:     print "Items:",i
   ....:     
Group: Group1
Items: ['Item1', 'Item2']
Group: Group2
Items: ['Item3', 'Item4']
Group: Group3
Items: ['Item5']

参考这些:

zip 和 izip_longest

【讨论】:

以上是关于迭代 Django 模板中数组内的多个列表的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

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