Django模板:字典键的值,其中包含空格

时间:2010-06-03 22:27:03

标签: django django-templates

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

{"Restaurant Name": Foo}

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

{{ entry['Restaurant Name'] }} 

2 个答案:

答案 0 :(得分:21)

内置标签没有干净的方法。尝试做类似的事情:

{{ 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" %}

或者尝试重组你的词典以便“更容易使用”键。

答案 1 :(得分:10)

您也可以使用自定义过滤器。

from django import template
register = template.Library()

@register.filter
def get(mapping, key):
  return mapping.get(key, '')

并在模板中

{{ entry|get:"Restaurant Name" }} 
相关问题