我的字典看起来像这样(字典中的字典):
{'0':{'selected_unit':,'cost':十进制('10 .0000'), 'unit__name_abbrev':u'G','supplier_ 供应商':u“Steve's Meat 储物柜“,'价格':十进制('5.00'),'供应商 _address': u'No \ r \ naddress at here','chosen_unit_amount':u'2','city_ name': u'Joburg,Central','supplier _phone_number':u'02299944444', 'supplier_ 网站':无,'供应商 _price_list':你', 'supplier_ email':u'ss.sss @ sssss.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 %}
但这并没有显示任何内容。
我做错了什么?
答案 0 :(得分:212)
让我们说你的数据是 -
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>
我很确定你可以将这个逻辑扩展到你的特定字典。
以排序顺序迭代dict键 - 首先我们在python中排序然后迭代&amp;在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 %}
答案 1 :(得分:2)
该答案对我不起作用,但我自己找到了答案。但是,没有人发布我的问题。我懒得 先问再回答,就放到这里。
这是针对以下查询:
data = Leaderboard.objects.filter(id=custom_user.id).values(
'value1',
'value2',
'value3')
在模板中:
{% for dictionary in data %}
{% for key, value in dictionary.items %}
<p>{{ key }} : {{ value }}</p>
{% endfor %}
{% endfor %}
答案 2 :(得分:0)
如果您将变量data
(字典类型)作为上下文传递给模板,则您的代码应为:
{% for key, value in data.items %}
<p>{{ key }} : {{ value }}</p>
{% endfor %}