在Django模板中迭代一系列字典

时间:2014-07-29 01:18:25

标签: python django

如何在Django模板中迭代一系列字典?

data = [{'name' : 'Bob', 'age' : 20}, {'name': 'Sally', 'age' : 20}]

由于数组

,我在使用docs中的代码时出现问题
{% for key, value in data.items %}
    {{ key }}: {{ value }}
{% endfor %}

2 个答案:

答案 0 :(得分:2)

items无法正常工作,因为您在列表中调用它,但您也不需要这样做。由于您的词典中有相同的键,只需循环遍历列表并直接访问词典:

{% for item in foo %}
   {{ item.name }}
   {{ item.age }}
{% endfor %}

documentation on template variables解释了.在词典方面的工作方式/原因:

  

从技术上讲,当模板系统遇到一个点时,它会尝试   按照以下顺序查找:

     
      
  • 字典查找
  •   
  • 属性查找
  •   
  • 方法调用
  •   
  • 列表索引查找
  •   

答案 1 :(得分:0)

看起来你的循环遍历列表,而不是dict。您可以尝试嵌套循环。

{% for details in data %}
    {% for key, value in details.items %}
        {{ key }}: {{ value }}
    {% endfor %}
{% endfor %}

由于您的dicts看起来具有相同的键,您可能还会执行以下操作:

{% for details in data %}
    name: {{ details.name }}
    age: {{ details.age }}
{ % endfor %}

如果您有更大的dicts或动态密钥,那么您最好使用嵌套循环。

相关问题