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
не работает. Как это исправить?
Так как я не могу прокомментировать, позвольте мне сделать это в форме ответа:
для построения ответ 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 }}