【问题标题】:multiple for loop in django templatedjango模板中的多个for循环
【发布时间】:2015-08-26 12:29:10
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      在模板中:

      {% for item1, item2 in list %}
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-17
        • 2012-07-25
        • 2013-10-26
        • 1970-01-01
        • 2010-11-09
        • 2019-05-23
        • 1970-01-01
        相关资源
        最近更新 更多