当密钥有特殊字符时,如何进行Django模板字典查找?

时间:2016-06-21 16:32:23

标签: python django dictionary django-templates

在django文档中,它说明了这一点。符号将按以下顺序进行查找

#Dictionary lookup. Example: 
foo["bar"]
#Attribute lookup. Example: 
foo.bar
#List-index lookup. Example: 
foo[bar]

在我的项目中,我有一本字典:

foo = {'ba-r':'...}

但是使用。符号会导致错误,这似乎是因为整个' foo.ba-r'是文档here中描述的变量。

foo.ba-r

有没有办法正确访问' ba-r'我的字典的关键?

1 个答案:

答案 0 :(得分:2)

正如您已经发现的那样,如果不提出ParseError,则无法在模板中访问此类密钥。例如,您可以使用a custom filter

from django import template

register = template.Library()

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

并像

一样使用它
{{ entry | get_key_value:"ba-r" }} 

或者更改您的词典结构,使其不包含此类键!