自己接触django时间不长,刚遇到一点小问题,就是在django模板中如何并行迭代多个列表。
一开始我想到或许可以传入多个列表,然后在模板中使用forloop.counter变量的值去访问另一个列表的元素。
比如当我迭代list1和list2的时候,使用类似下面的代码:
{% for item in list1 %}
access list2 item via {{ list2.forloop.counter}}
{% endfor %}
forloop.counter是一个计数器,保存了当前的迭代计数器。然而,测试之后,发现这个方法是不可行的。
随后,我又测试了另一种方法,在模板中zip打包 list1和list2,然后通过序列解包来并行迭代。模板代码类似:
{% for item1,item2 in zip(list1, list2) %}
{{item1}} {{item2}}
{% endfor %}
不过, 这样也是不可行的。模板系统无法完成上面的工作。
那么,到底应该如何并行迭代呢?