Я пытаюсь представить словарь от своего view.py в шаблоне HTML, таком как:
test = { 'works': True, 'this fails':False }
и в шаблоне:
Это работает без проблемы:
{{ test.works }}
Но ключ словаря, который имеет вакуум между словами, такими как 'это, перестал работать', не работает:
{{ test.this fails }}
Я получаю эту ошибку:
Не мог проанализировать остаток:
' fails'
от'this fails'
Как я могу преодолеть эту проблему? Я не тот, заполняющий модели, таким образом, я не могу изменить ключи dict для удаления пробелов.
. Вам нужен фильтр, похожий на
@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
Мне это не кажется правильным. Можете ли вы сделать следующее?
{{ test['works'] }}
{{ test['this fails'] }}
Вот как обычно работает доступ к словарю в python.
Я не знаю ни одного стандартного решения в Django. Я думаю, что это возможно с помощью шаблонного фильтра.
Эта статья может вас заинтересовать http://push.cx/2007/django-template-tag-for-dictionary-access (автор использует термин тега шаблона, но на самом деле это шаблонный фильтр)
Надеюсь, это поможет