Я пытаюсь присвоить значение словарю в Jinja2, и он не работает должным образом и показывает ошибку.
ожидаемый токен 'конец блока операторов', получил '='
Мой код:
{% set sequence = ['a1', 'b1']%}
{% set dic = {} %}
{% for filter in search_result.filters %}
{% for seq_key in sequence %}
{% if seq_key == filter.key %}
{# here i wish to create a dictionary where key= seq_key and value = filter_object#}
{% do dic[seq_key]=filter %}
{% endif %}
{% endfor %}
{% endfor %}





Оператор do принимает только выражение, а не оператор, как присваивание. Поскольку Jinja2 напрямую не поддерживает назначение словаря по ключу, вместо этого вы можете вызвать метод update словаря с одноэлементным словарем, содержащим новое сопоставление ключ-значение.
Изменять:
{% do dic[seq_key]=filter %}
к:
{% do dic.update({seq_key: filter}) %}
К сожалению, я забыл, что Jinja2 не поддерживает назначение диктов по ключу напрямую. Я обновил свой ответ, указав лучший обходной путь.
Приходит эта новая ошибка: ожидаемый токен «конец блока операторов», полученный «[», с заданным ключевым словом @blhsing