我收到错误:
需要2个值来解包for循环;得到1。
这是我的视图:
class Index(View):
def get(self, request, slug):
test = {
1: {
'id': 1,
'slug': 'test-slug-1',
'name': 'Test Name 1'
},
2: {
'id': 2,
'slug': 'test-slug-2',
'name': 'Test Name 2'
}
}
context = {
'test': test
}
return render(request, 'wiki/category/index.html', context)
这是我的模板:
{% block content %}
<div>
{{ test }}
<ul>
{% for key, value in test %}
<li>
<a href="#">{{ key }}: {{ value }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endblock %}
我也尝试过这样的模板:
{% block content %}
<div>
{{ test }}
<ul>
{% for value in test %}
<li>
<a href="#">{{ value }}: {{ value.name }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endblock %}
然后没有错误,但{{ value }}
显示密钥(这很好),但{{ value.name }}
没有显示任何内容。虽然{{ test }}
显示我的字典。
答案 0 :(得分:15)
循环字典的项目以获取键和值:
{% for key, value in test.items %}
答案 1 :(得分:0)
不熟悉Django。但是,默认情况下,Python会迭代字典的键。我也假设您正在使用Python2。要获取值,您需要执行以下操作:
{%for test.itervalues()%}
如果你想要两者,你需要做:
{%for key,test.iteritems()%}中的值
这将为您提供密钥和价值。