【问题标题】:How to obtain dicts key and values in Django template?如何在 Django 模板中获取字典键和值?
【发布时间】: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()'

【问题讨论】:

  • @souldeux 这个问题没有提供访问被迭代字典的键和值的方法。
  • 当您循环浏览项目时,您已经有了键 值。没有必要尝试index_display[key](这很幸运,因为Django模板语言不允许这样的字典查找)。
  • 您的错误消息似乎与您问题中的模板不匹配。你不会在任何地方使用index_display.key()
  • @Alasdair 抱歉,我更新了问题中的 for 循环,也忘记更新该部分。

标签: python django python-2.7 python-3.x


【解决方案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 %}
猜你喜欢
  • 2019-03-28
  • 2018-11-15
  • 2019-12-13
  • 2015-05-23
  • 2021-07-18
  • 1970-01-01
  • 2022-12-11
  • 1970-01-01
  • 2011-11-22
相关资源
最近更新 更多