如何在 Django 模板中获取字典键和值?
Posted
技术标签:
【中文标题】如何在 Django 模板中获取字典键和值?【英文标题】:How to obtain dicts key and values in Django template? 【发布时间】:2018-04-14 02:16:07 【问题描述】:我有一本字典:
'm': 'm', 'c': None, 's': None, 'n': None, 'a': 'a', 'x': None, 'b': None, 'l': None, 'u': None, 'o': 'o', 'q': None, 'i': None, 'f': None, 'z': None, 'e': None, 't': 't', 'h': None, 'y': None, 'v': None, 'p': None, 'k': None, 'g': None
我想传递值为 None 的键值对与具有字母的键值对不同。
这就是我目前所拥有的模板
<table align="center" cellpadding="4px">
<tr>
% for key, value in index_display.items %
% if index_display[key] = None %
<td><a href=""> key </a></td>
<td id="partners_nav_bracket">|</td>
% else %
<td><a href=" value "> key </a></td>
<td id="partners_nav_bracket">|</td>
% endif %
% endfor %
</tr>
</table>
然而这会引发错误:
Could not parse the remainder: '()' from 'index_display.key()'
【问题讨论】:
Accessing dictionary by key in Django template的可能重复 @souldeux 这个问题没有提供访问被迭代字典的键和值的方法。 当您循环浏览项目时,您已经有了键 和 值。没有必要尝试index_display[key]
(这很幸运,因为Django模板语言不允许这样的字典查找)。
您的错误消息似乎与您问题中的模板不匹配。你不会在任何地方使用index_display.key()
。
@Alasdair 抱歉,我更新了问题中的 for 循环,也忘记更新该部分。
【参考方案1】:
<table align="center" cellpadding="4px">
<tr>
% for key, value in index_display.items %
% if value == None %
<td><a href=""> key </a></td>
<td id="partners_nav_bracket">|</td>
% else %
<td><a href=" value "> key </a></td>
<td id="partners_nav_bracket">|</td>
% endif %
% endfor %
</tr>
</table>
【讨论】:
在 Django 1.10+ 中,你可以做到% if value is None %
。以上是关于如何在 Django 模板中获取字典键和值?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AngularJS 中使用 ng-repeat 迭代键和值?
如何使用 django 在 developertools 中的 cookie 中添加键和值?