字典值不能通过在 django 模板中使用它们的对应键来迭代[重复]
Posted
技术标签:
【中文标题】字典值不能通过在 django 模板中使用它们的对应键来迭代[重复]【英文标题】:dictionary values can't be iterated through using their corresponding keys in django template [duplicate] 【发布时间】:2018-08-12 02:47:13 【问题描述】:所以我有一个嵌套字典,格式如下:
data = server:'rating':'class':'good, 'desc':'whatever', 'vulnerabilities':'heartbleed':'severity':'critical', 'desc':'terrible config'
我想使用键遍历值,我已经阅读了文档,这就是我在模板中所做的:
% for key, value in data.items %
<p> 'This is the key key and this is the value value'<p>
% endfor %
到目前为止一切顺利,奇怪的是我无法使用 for 循环检索到的键获取值,即当我有这样的模板时:
% for key in data.keys %]
<p> 'This is the key: key' </p>
<p> 'This is the value: data.key '<p>
% endfor %
key
返回键没有问题。即使当我做data.server
时,我也能毫无问题地得到相应的值。奇怪的是,这条线 data.key
并没有像我直觉的那样工作。
在一个循环中,key==server
、data.server
有效,但 data.key
无效。我在这里做错了什么?
【问题讨论】:
因为您的字典没有名为'key'
的键?它确实有一个密钥'server'
,这就是它起作用的原因。您将不得不使用 django 等效的 data[key]
,而不是 data['key']
,这就是它现在正在做的事情。
@Graipher tnx,现在我明白为什么它不起作用了。 django 是否有 data[key] 的等价物?
对不起,我对django一无所知。但我确信有办法。
我不明白你为什么要这样做,当迭代 .items
工作时。
@DanielRoseman 我的实际字典远比这复杂。每个初始键都有自己的 rating:rating 我想用它来设置相应容器的样式...
【参考方案1】:
在模板引擎中动态的唯一方法是使用custom template filter
查看Django template how to look up a dictionary value with a variable 了解入门实施
【讨论】:
以上是关于字典值不能通过在 django 模板中使用它们的对应键来迭代[重复]的主要内容,如果未能解决你的问题,请参考以下文章