Django模板:列表“for”标签内的嵌套字典“for”标签

时间:2009-07-23 23:23:08

标签: django django-templates

我希望能够在Django模板中的for循环内迭代字典。

为了这个样本,请考虑以下内容:

items_list = [ {'key1':'value1', 'key2':'value2'}, {'key1':'value5', 'key2':'value9'} ]

方法#1:

{% for dict in items_list %}
    {% for key,value in dict %}
        <tr>
            <td>{{ key }}</td>
            <td>{{ value }}</td>
        </tr>
    {% endfor %}
{% endfor %}

方法#2:

{% for dict in items_list %}
    {% for node in dict.items %}
        <tr>
            <td>{{ node.0 }}</td>
            <td>{{ node.1 }}</td>
        </tr>
    {% endfor %}
{% endfor %}

问题

  • 为什么方法#1不起作用?这对我来说似乎很直观。
  • 我在方法#2中这样做的方式是好还是以后会引起问题?

1 个答案:

答案 0 :(得分:16)

.items属性应该在方法1中使用。试试这个:

{% for key,value in dict.items %}

dict.items()返回键值对的列表。但只是dict是一个字典对象。 http://docs.python.org/library/stdtypes.html#dict.items