{% for repo in repo_info %}
{% for branch in branch_info[forloop.counter] %}
<li>Branch Name --> {{ branch }}</li>
{% endfor %}
{% endfor %}
branch_info
是一个列表清单。
它给我的错误无法解析其余部分---&gt; branch_info [forloop.counter]
有没有办法解析也是列表的列表元素?
答案 0 :(得分:0)
您可以创建一个简单的template tag,以返回所请求索引的数据
# some file named my_template_tags.py
@register.simple_tag
def at_index(data, index):
return data[index]
如果使用无效索引,则会抛出异常。如果您不想要例外,则必须捕获它并返回一些有效数据。
它也可以与字典一起使用,但是传入密钥而不是索引。
{% load my_template_tags %}
{% for repo in repo_info %}
{% for branch in branch_info|at_index:forloop.counter %}
<li>Branch Name --> {{ branch }}</li>
{% endfor %}
{% endfor %}
答案 1 :(得分:0)
大多数情况下,当您的模板代码开始像这样凌乱时,这意味着您的数据没有正确的结构。在这种情况下,您似乎依赖repo_info
和branch_info
为“并行序列”(branch_info[x]
的数据用于repo_info[x]
的回购)。
最干净的解决方案是让repo
保留自己的branch
列表,这样您就可以迭代repo_info
,然后对repo.branches
的每个repo迭代进行迭代。
如果您无法通过这种方式轻松构建数据,则另一种解决方案是在您的视图中zip(或itertools.izip
)repo_info
和branch_info
一起使用,以便您可以进行迭代
(repo, branches)
个元组。