Django模板语言解包字典

5

我有一个字典以(作为另一个对象的一部分)传递给Django模板语言。 该对象名为'poll',具有属性self.textself.votes,其中前者是字符串,后者是字典。 字典如下所示: {'a1': 45.92422502870264, 'a2': 53.50172215843857} 我正在尝试使用以下方式列出每个标签及其相应的数字:

{% for l, x in poll.votes %}
<p>{{ l }} {{ x }}</p>
{% endfor %}

Django 响应:
Exception Type: ValueError
Exception Value:    Need 2 values to unpack in for loop; got 3.

我尝试使用.iteritems - 文档解释说.iteritems不是正确的方法,但他们没有解释正确的方法是什么。

我尝试使用.iteritems - 文档中说明.iteritems并不是正确的方法,但未提供正确的方法。


@Pythonista 谢谢!你想把它作为答案,我会接受它吗? - Alex
2个回答

7

您只需按照与Python相同的方式进行迭代,但使用Django模板语言(DTL)语法

 {% for key, value in dictionary.items %}

你的poll.votes是一个字典,但你在代码中没有迭代项目,而是键。
你可以在这里找到jinja的概述here。值得注意的是,jinja不是django使用的东西,但它很方便,因为许多东西都是相同的(jinja基于DTL),而不是深入挖掘djangos文档。
对于Django模板,这里是文档参考

1
你也可以做到这一点:

{% for variable in poll %}
   {{ variable.name }} - {{ variable.votes }}
{% endfor %}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接