我有一个字典(作为另一个对象的一部分)传递给 django 模板语言。
名为“poll”的对象具有属性 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
不是执行此操作的正确方法,但他们没有解释正确的方法 是。
最佳答案
您只需像在 python 中一样进行迭代,但使用 Djangos 模板语言 (DTL) 语法
{% for key, value in dictionary.items %}
您的 poll.votes 是一个字典,但您不是在迭代项目,而是在代码中迭代键。
您可以找到 jinja 的概述 here .值得注意的是,jinja 不是 django 使用的,但它可以方便地作为浓缩引用,因为很多东西都是相同的(jinja 基于 DTL),而不是通过 django 文档进行挖掘。
对于 Djangos 模板继承人 the documentation reference
关于python - Django 模板语言解压字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50612834/