一尘不染

Django templates:字典键的值,其中有一个空格

django

在Django模板中,有没有办法从其中有空格的键中获取值?例如,如果我有一个像这样的字典:

{"Restaurant Name": Foo}

如何在模板中引用该值?伪语法可能是:

{{ entry['Restaurant Name'] }} 

阅读 576

收藏
2020-03-31

共1个答案

一尘不染

没有干净的方法使用内置标签来执行此操作。尝试做类似的事情:

{{ a.'Restaurant Name'}} or {{ a.Restaurant Name }}

将引发解析错误。

你可以在字典中进行for循环(但丑陋/效率低下):

{% for k, v in your_dict_passed_into_context %}
   {% ifequal k "Restaurant Name" %}
       {{ v }}
   {% endifequal %}
{% endfor %}

自定义标签可能更干净:

from django import template
register = template.Library()

@register.simple_tag
def dictKeyLookup(the_dict, key):
   # Try to fetch from the dict, and if it's not found return an empty string.
   return the_dict.get(key, '')

并在模板中使用它,如下所示:

{% dictKeyLookup your_dict_passed_into_context "Restaurant Name" %}

或者,也许尝试重组你的字典,使其具有“更易于使用”的键。

2020-03-31