django模板中的多个for循环

时间:2015-08-26 12:29:11

标签: python django django-templates

在django中,在列表或数组上使用for循环的语法是:

{% for each in list %}
    <td>{{ each }}</td>
{% endfor %}

如果我使用嵌套循环,则数据跨越多列。

如何同时迭代两个或多个列表。我想要迭代5个列表。

例如在python中我可以使用类似的东西:

for x,y in zip(ls1, ls2):
    #Do your work

2 个答案:

答案 0 :(得分:4)

在视图中使用foo = zip(list1,list2,list3,...),然后在模板中迭代:

{% for a,b,c,d,e in list %}
    ....
{% endfor %}

另一种选择是编写自定义{%for%}模板标记。

顺便说一下:使用list作为变量并不是一种好习惯,因为你覆盖list()函数

答案 1 :(得分:0)

您可以在渲染模板之前压缩两个列表,并将zip作为参数传递:

zippedList = zip(list1, list2)
return render('template.html', {'zippedList': list}

在模板中:

{% for item1, item2 in list %}

这样您就可以遍历这两个列表。