Пользовательский тег шаблона является единственным способом доступа к словарным ключам со специальными символами. Ответ на этот вопрос дает хороший пример.
Для ленивых:
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!@#$%" }}