我来自这个问题Use variable as dictionary key in Django template
我在我看来创建了这个上下文:
{'cats': {'LIST1': ['a','b','c'], 'LIST2': ['aa','bb','cc','dd'], 'LIST3': ['f','g']}}
我想要做的是打印列表标题,然后打印所有项目,例如
LIST1:
- a
- b
- c
所有列表,所以我在我的模板
中这样做了{% for l_name, l in cats %}
{{ l_name }}
{%for lv in l %}
{{ lv }}
{% endfor %}
{% endfor %}
这将打印仅列表名称,而不打印列表。哪里出错了?
感谢
答案 0 :(得分:5)
如果要迭代键和值,可以使用:
{% for name, lst in cats.iteritems %}
....
{% endfor %}
这只调用字典的iteritems
方法,该方法在2元组列表上返回迭代器。
Django's {% for %}
tag documentation也有一些很好的例子。
答案 1 :(得分:0)
仅供记录,问题在于如何创建数据。所以而不是
{'cats': {'LIST1': ['a','b','c'], 'LIST2': ['aa','bb','cc','dd'], 'LIST3': ['f','g']}}
我需要一个touple列表:
{'cats': [('LIST1', ['a','b','c']), ('LIST2', ['aa','bb','cc','dd']), ('LIST3', ['f','g'])]}