当键具有特殊字符时,如何进行 Django 模板字典查找? [复制]

Posted

技术标签:

【中文标题】当键具有特殊字符时,如何进行 Django 模板字典查找? [复制]【英文标题】:How to do a Django Template dictionary lookup when key has special characters? [duplicate] 【发布时间】:2016-10-23 07:51:01 【问题描述】:

在 django 文档中它说 . notation 将按以下顺序进行查找

#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' 键吗?

【问题讨论】:

你不能使用 foo["ba-r"] 有什么原因吗? How do I access dictionary keys that contain hyphens from within a Django template? 和 dict keys with spaces in Django templates 可能重复 【参考方案1】:

正如您已经发现的那样,如果不提出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"  

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

【讨论】:

以上是关于当键具有特殊字符时,如何进行 Django 模板字典查找? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

当键有点字符时,对象会被破坏[重复]。

django 模板关闭特殊字符转化

使用带有特殊字符的 Django 的 url 模板标签

Django,将HTML放入模板时自动对HTML进行“清理”,如何阻止它?

当键被分配字符串时,是不是有优化的 Map 版本?

当键是一个只知道第一个元素的元组时,如何获取scala Map值?