Django模板语言解包字典
Posted
技术标签:
【中文标题】Django模板语言解包字典【英文标题】:Django template language unpacking a dict 【发布时间】:2018-11-09 18:57:41 【问题描述】:我有一个字典(作为另一个对象的一部分)传递给 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
不是正确的方法,但他们没有解释正确的方法是什么。
【问题讨论】:
@Pythonista 谢谢!你想把它作为答案,我会接受吗? 【参考方案1】:您只需像在 python 中一样进行迭代,但使用 Django 的模板语言 (DTL) 语法
% for key, value in dictionary.items %
您的 poll.votes 是一个字典,但您不是在迭代项目,而是在代码中的键。
您可以找到 jinja 的概述here。值得注意的是,jinja 不是 django 使用的,但它可以方便地作为浓缩参考,因为很多东西都是相同的(jinja 基于 DTL),而不是通过 djangos 文档进行挖掘。
对于 Djangos tempaltes heres the documentation reference
【讨论】:
【参考方案2】:你也可以这样做:
% for variable in poll %
variable.name - variable.votes
% endfor %
【讨论】:
以上是关于Django模板语言解包字典的主要内容,如果未能解决你的问题,请参考以下文章