如何在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 %}