代码之家  ›  专栏  ›  技术社区  ›  T. Stone

django模板:嵌套字典“for”tag inside of list“for”tag

  •  5
  • T. Stone  · 技术社区  · 15 年前

    我希望能够在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 回复  |  直到 15 年前
        1
  •  16
  •   Robert    11 年前

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

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

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