【发布时间】:2012-01-28 05:18:23
【问题描述】:
我有一个 dict 传递给我的模板,一些元素名称/键以 @ 符号开头,即: { '@id': 123, '@name': '亚历克斯' }
有没有一种好的/干净的方式可以访问这些元素?
【问题讨论】:
我有一个 dict 传递给我的模板,一些元素名称/键以 @ 符号开头,即: { '@id': 123, '@name': '亚历克斯' }
有没有一种好的/干净的方式可以访问这些元素?
【问题讨论】:
自定义模板标签是访问带有特殊字符的字典键的唯一方法。 this question 的答案就是一个很好的例子。
对于懒人:
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!@#$%" }}
【讨论】:
{{ dict|getkey:"name" }}吗?而不是{% ... %}。