Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 访问dict元素,该元素为';s键以一个@_Django_Django Templates - Fatal编程技术网

Django 访问dict元素,该元素为';s键以一个@

Django 访问dict元素,该元素为';s键以一个@,django,django-templates,Django,Django Templates,我已将dict传递到模板,一些元素名称/键以@符号开头,即: {'@id':123,'@name':'Alex'} 有没有一种好的/干净的方法可以访问这些元素?自定义模板标记是访问具有特殊字符的字典键的唯一方法。这个问题的答案提供了一个很好的例子 对于懒惰的人: from django import template register = template.Library() @register.filter def dictKeyLookup(the_dict, key): # Tr

我已将dict传递到模板,一些元素名称/键以@符号开头,即: {'@id':123,'@name':'Alex'}


有没有一种好的/干净的方法可以访问这些元素?

自定义模板标记是访问具有特殊字符的字典键的唯一方法。这个问题的答案提供了一个很好的例子

对于懒惰的人:

from django import template
register = template.Library()

@register.filter
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 "@blarg!#$^&*" %}
作为家庭作业,您还可以将其转换为一个简单的过滤器,这将为您提供如下语法:

{{ your_dict|getkey:"@blarg!@#$%" }}

谢谢老实说,我也期待着这么多,但我对django太陌生了,我不确定这是否只是我错过了一些语法。我已经实现了一个过滤器,看起来仍然相当整洁。哦,过滤器不应该是
{{dict|getkey:“name”}
?而不是
{%…%}