我有不同的列表
context = {
'query' : request.POST['query'],
'link' : link,
'description' : description,
'title' : title,
'thumbnail' : thumb,
'range' : range(len(title)),
}
我想像这样遍历它们
for i in range(20):
link[i]
title[i]
在Django模板中。我该怎么办?
答案 0 :(得分:2)
您最好在可以使用完整Python库(例如zip
)的视图中创建那些链接标题对:
context = {
'link' : link,
'title' : title,
'link_title': list(zip(link, title)),
# ...
}
如有必要,您可以在模板中分割方便列表:
{% for l, t in link_title|slice:":20" %}
# do stuff with l, t
{% endfor %}
答案 1 :(得分:1)
通常,通常在视图中不使用zip
构造,然后在两个(或多个)迭代器上同时进行迭代:
context = {
'query' : request.POST['query'],
'linktitle' : zip(link, title),
'description' : description,
'thumbnail' : thumb,
'range' : range(len(title)),
}
,然后在模板中:
{% for linki, titlei in linktitle %}
{{ linki }} / {{ titlei }}
{% endfor %}
如果仅对前20个元素感兴趣,则可以在邮政编码中添加range(20)
,或使用islice
:
from itertools import islice
context = {
'query' : request.POST['query'],
'linktitle' : islice(zip(link, title), 20),
'description' : description,
'thumbnail' : thumb,
'range' : range(len(title)),
}