Python 在模板中多次使用压缩查询集
我有一个仅为字符串的模型:Python 在模板中多次使用压缩查询集,python,django,Python,Django,我有一个仅为字符串的模型: class Data(models.Model): string = models.CharField(max_length=200); 我的数据库中有2个注册的模型实例 它由该视图呈现,该视图对另一个列表中的查询集进行压缩: def index(request): data = Data.objects.all(); data2 = []; for x in data: data2.append(0); re
class Data(models.Model):
string = models.CharField(max_length=200);
我的数据库中有2个注册的模型实例
它由该视图呈现,该视图对另一个列表中的查询集进行压缩:
def index(request):
data = Data.objects.all();
data2 = [];
for x in data:
data2.append(0);
return render(request, 'testApp/index.html', {"data": zip(data, data2)})
以下是模板代码:
{% for element, e in data %}
{{ element.string }} {{ e }} <br/>
{% endfor %}
{% for element, e in data %}
{{ element.string }} {{ e }} <br/>
{% endfor %}
我希望有4行输出,因为这两个实例循环了两次。但是它只打印了一次。我做错了什么?在Python 3中,将为您提供一个迭代器,这意味着它将在第一个循环中使用,因此不会在第二个循环中打印任何内容
您可以通过将迭代器强制转换为列表来解决此问题,将
zip(数据,数据2)
替换为list(zip(数据,数据2))
是否使用Python 3?在Python3中,zip
将为您提供一个迭代器,当您对它进行迭代时,它将被使用,在第二个循环中可能会留下一个空的迭代器。尝试使用list(zip(data,data2))
看看这是否解决了您的问题。啊,似乎就是这样。谢谢
hello there 0
i am a string 0