我有一个字典(作为另一个对象的一部分)传递给django模板语言。
该对象称为'民意调查'具有属性self.text
和self.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
不是正确的方法,但他们没有解释 的正确方法。
答案 0 :(得分:3)
你只需要像在python中一样迭代,但是在Djangos模板语言(DTL)语法中
{% for key, value in dictionary.items %}
您的poll.votes是一个字典,但您不是在代码中迭代项目而是迭代。
你可以找到一个关于jinja here的概述。值得注意的是,jinja并不是django使用的东西,但由于很多东西是相同的(jinja基于DTL)而不是通过djangos docs挖掘它,因此它很方便用于精简参考。
对于Djangos tempaltes继承人the documentation reference
答案 1 :(得分:1)
您也可以这样做:
{% for variable in poll %}
{{ variable.name }} - {{ variable.votes }}
{% endfor %}