Ключи с пробелами в шаблонах Django
Я пытаюсь представить словарь из моего view.py в шаблоне HTML, например:
test = { 'works': True, 'this fails':False }
и в шаблоне:
Это работает без проблем:
{{ test.works }}
Но ключ словаря, который имеет пустое пространство между словами, такими как "this fail", не работает:
{{ test.this fails }}
Я получаю эту ошибку:
Не удалось проанализировать остаток: ' fails'
from 'this fails'
Как я могу решить эту проблему? Я не тот, кто заполняет модели, поэтому я не могу изменить ключи dict, чтобы удалить пробелы.
Ответы
Ответ 1
Фильтр, который вы хотите, похож на
@register.filter(name='getkey')
def getkey(value, arg):
return value[arg]
И используется с
{{test|getkey:'this works'}}
источник: http://www.bhphp.com/blog4.php/2009/08/17/django-templates-and-dictionaries
Ответ 2
Я не знаю стандартного решения в Django. Я думаю, что это возможно с помощью фильтра шаблонов.
Вам может быть интересна эта статья http://push.cx/2007/django-template-tag-for-dictionary-access (автор использует термин тега шаблона, но на самом деле это фильтр шаблонов)
Я надеюсь, что это поможет
Ответ 3
Это не выглядит правильным для меня. Можете ли вы сделать следующее?
{{ test['works'] }}
{{ test['this fails'] }}
Вот как обычно работает словарь в python.