如何在 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 模板中获取字典键和值?的主要内容,如果未能解决你的问题,请参考以下文章

django模板获取键和值分开显示

如何在django中将python字典动态输出到html?

如何在 AngularJS 中使用 ng-repeat 迭代键和值?

如何使用 django 在 developertools 中的 cookie 中添加键和值?

从python字典如何将键和值保存到* .txt文件[关闭]

在python中的字典中切换键和值[重复]