Django模板变量作为列表的关键

时间:2012-11-17 13:22:41

标签: django templates django-templates

我来自这个问题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 %}

这将打印列表名称,而不打印列表。哪里出错了?

感谢

2 个答案:

答案 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'])]}