2011-08-24 22 views
2

我已经字典的名单命名menu_dict_list:如何在django中打印字典列表?

[{'date': datetime.datetime(2011, 8, 15, 0, 0), 
    'Popcorn': 5, 'Coke': 5, 'Chips': 0, 'Burger': 3}, 
{'date': datetime.datetime(2011, 8, 10, 0, 0), 
    'Popcorn': 4, 'Coke': 4, 'Chips': 0, 'Burger': 0}] 

我采纳了这种做法:

**{% for menu_dict in menu_dict_list %} 
<tr> 
{% for key,value in menu_dict %} 
<td>{{value}}</td> 
{% endfor %} 
</tr> 
{% endfor %}** 

如何打印在Django?但它运行不好。在此先感谢

+1

记住迭代一个'dict'只产生密钥。 'dict.items()'/'dict.iteritems()'产生'键值对'。所以这就是你必须在视图中使用。如果你只想要值,可以使用'dict.values' /'dict.itervalues'。 –

回答

2

您必须使用字典的.items方法:

{% for menu_dict in menu_dict_list %} 
     <tr> 
       {% for key,value in menu_dict.items %} 
         <td>{{value}}</td> 
       {% endfor %} 
     </tr> 
{% endfor %} 

this

+0

你能解释一下为什么吗? –

+0

对不起...我习惯于写iteritems ...你是对的...我以为你使用“值”,因为它是for标签中唯一使用的值... – christophe31

1

,如果你的问题是重复的字典,看这里:

<ul> 
{% for key,value in menu_dict.iteritems %} 
    <li><b>{{ key }}:</b> {{ value }} </li> 
{% endfor %} 
</ul> 

以防万一你想一个漂亮的餐桌上这,注意那本字典是没有顺序的话,你可能想要使用django SortedDict或2条目元组列表的列表。