如何在django模板中的字典中迭代字典?

我的字典看起来像这样(词典中的字典):

{'0':{'selected_unit':,'cost':十进制('10 .0000'),'unit__name_abbrev':u'G','supplier_ supplier':u“Steve's Meat Locker”,'price':十进制(' 5.00'),'supplier_address ':u'No \ r \ naddress here','chosen_unit_amount':u'2','city_ name':u'Joburg,Central', supplier_phone_number':u'02299944444', 'supplier_site ':None,'supplier_price_list ':u'','supplier_ email':u'ss.sss@ssssss.com',' unit_name':u'Gram','name':u'Rump Bone “}}

现在我只是试图显示在我的模板上的信息,但我挣扎。 我的模板代码如下所示:

{% if landing_dict.ingredients %} <hr> {% for ingredient in landing_dict.ingredients %} {{ ingredient }} {% endfor %} <a href="/">Print {{ landing_dict.recipe_name }}</a> {% else %} Please search for an ingredient below {% endif %} 

它只是在我的模板上显示我'0'?

我也试过:

  {% for ingredient in landing_dict.ingredients %} {{ ingredient.cost }} {% endfor %} 

这甚至不显示结果。

我想也许我需要进一步迭代一个级别,所以试试这个:

  {% if landing_dict.ingredients %} <hr> {% for ingredient in landing_dict.ingredients %} {% for field in ingredient %} {{ field }} {% endfor %} {% endfor %} <a href="/">Print {{ landing_dict.recipe_name }}</a> {% else %} Please search for an ingredient below {% endif %} 

但是这不显示任何东西。

我究竟做错了什么?

让我们说你的数据是 –

data = {'a': [ [1, 2] ], 'b': [ [3, 4] ],'c':[ [5,6]] }

您可以使用data.items()方法来获取字典元素。 请注意,在Django模板中,我们不放() 。 还有一些用户提到的values[0]不起作用,如果是这样的话,请尝试values.items

 <table> <tr> <td>a</td> <td>b</td> <td>c</td> </tr> {% for key, values in data.items %} <tr> <td>{{key}}</td> {% for v in values[0] %} <td>{{v}}</td> {% endfor %} </tr> {% endfor %} </table> 

我相信你可以把这个逻辑扩展到你的特定字典。


按sorting顺序遍历字典键 – 首先我们在python中sorting,然后在django模板中迭代和渲染。

return render_to_response('some_page.html', {'data': sorted(data.items())})

在模板文件中:

 {% for key, value in data %} <tr> <td> Key: {{ key }} </td> <td> Value: {{ value }} </td> </tr> {% endfor %}