Django:我的上下文变量不能用于重复的 for 循环

问题描述 投票:0回答:1

在views.py中我有变量

mylist = zip(set1,set2,set3)

在模板中我这样做

{% for val1, val2, val3 in mylist%}
{% endfor %}

效果很好。但是,如果我重复该条件,它就会失败。正常吗?假设我有以下内容:

# this is my page
some text
{% for val1, val2, val3 in mylist %}
  {{forloop.counter}}
{% endfor %}
more text
{% for val1, val2, val3 in mylist %}
  {{forloop.counter}}
{% endfor %}
more text
# final text of page

第一个循环将起作用,第二个循环将为空。好像只能用一次

mylist
。我没有在简单的列表中遇到这个问题(据我记得)。一种解决方案是创建 2 个相同的上下文变量以具有 2 个 for 循环,但这看起来很奇怪......

django django-templates nested-for-loop
1个回答
0
投票

zip()
返回一个迭代器。 只能食用一次

在 python 中也尝试一下:

myiter = iter([1,2,3])

for i in myiter:
    print(x)

for i in myiter:
    print(x)

你会得到同样的行为。它将返回:

1
2
3
© www.soinside.com 2019 - 2024. All rights reserved.