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

mydict = {"key1":"value1", "key2":"value2"}

Обычный способ поиска значения словаря в шаблоне Django: {{mydict.key1}} , {{mydict.key2}} . Что, если ключом является переменная цикла? например:

{% for item in list %} # where item has an attribute NAME
  {{ mydict.item.NAME }} # I want to look up mydict[item.NAME]
{% endfor %}

mydict.item.NAME не работает. Как это исправить?

207
задан MD. Khairul Basar 14 December 2017 в 03:14
поделиться

1 ответ

Так как я не могу прокомментировать, позвольте мне сделать это в форме ответа:
для построения ответ culebrГіn или Yuji, которого ответ Tomita 'Tomita' , словарь передал в функцию, в форме строки, поэтому, возможно, используйте ast.literal_eval для преобразования строки в словарь сначала, как в этот пример .

С этим редактированием, код должен быть похожим на это:

@register.filter(name='lookup')
def lookup(value, arg):
    dictionary = ast.literal_eval(value)
    return value.get(arg)

{{ mydict|lookup:item.name }}
0
ответ дан 23 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

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