Дикт-ключи с пробелами в шаблонах Django - PullRequest
12 голосов
/ 15 декабря 2009

Я пытаюсь представить словарь из моего view.py в шаблоне HTML, например:

test = { 'works': True, 'this fails':False }

и в шаблоне:

Это работает без проблем:

{{ test.works }}

Но ключ словаря, в котором между словами есть пробел, например «this fails», не работает:

{{ test.this fails }}

Я получаю эту ошибку:

Не удалось разобрать остаток: ' fails' из 'this fails'

Как я могу преодолеть эту проблему? Я не тот, кто заполняет модели, поэтому я не могу изменить ключи dict для удаления пробелов.

Ответы [ 3 ]

16 голосов
/ 15 декабря 2009

Фильтр, который вы хотите, похож на

@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 голосов
/ 15 декабря 2009

Я не знаю ни одного стандартного решения в Django. Я думаю, что это возможно с фильтром шаблона.

Вас может заинтересовать эта статья http://push.cx/2007/django-template-tag-for-dictionary-access (автор использует термин тег шаблона, но на самом деле это фильтр шаблона)

Надеюсь, это поможет

0 голосов
/ 15 декабря 2009

Мне это не кажется правильным. Можете ли вы сделать следующее?

{{ test['works'] }} 
{{ test['this fails'] }}

Вот как обычно работает доступ к словарю в python.

...