Шаблоны Django: значение ключа словаря с пространством в нем

В шаблоне Django, там способ получить значение от ключа, который имеет пространство в нем? Например, если у меня есть dict как:

{"Restaurant Name": Foo}

Как я могу сослаться на то значение в своем шаблоне? Псевдосинтаксис мог бы быть:

{{ entry['Restaurant Name'] }} 
18
задан Matt Hampel 17 March 2016 в 19:26
поделиться

1 ответ

С помощью встроенных тегов этого не существует. Попытка сделать что-то вроде:

{{ a.'Restaurant Name'}} or {{ a.Restaurant Name }}

вызовет ошибку синтаксического анализа.

Вы можете сделать цикл for через словарь (но это уродливо /неэффективно):

{% for k, v in your_dict_passed_into_context %}
   {% ifequal k "Restaurant Name" %}
       {{ v }}
   {% endifequal %}
{% endfor %}

Пользовательский тег, вероятно, будет чище:

from django import template
register = template.Library()

@register.simple_tag
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_passed_into_context "Restaurant Name" %}

Или, может быть, попытаться реструктурировать свой диктовку, чтобы иметь клавиши «легче работать».

23
ответ дан 30 November 2019 в 07:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: