Предположим, я передаю словарь в свой шаблон jinja2.
В представлении у меня что-то вроде
d = {}
#set other template stuff into d
get_params['cri'] = 'time'
get_params['order'] = 'asc'
d['get_params'] = get_params
return d
В шаблоне мне нужно изменить значение ключей get_params. Логическая вещь
{% set get_params.cri='src' %}
терпит неудачу с ошибкой
TemplateSyntaxError: expected token '=', got '.'
Мой вопрос заключается в том, как изменить значения, переданные в словарь в jinja2
(Этот вопрос был задан здесь , но я нахожу ответ сбивает с толку, и это отвечает только на часть слияния)
Ответ РЕДАКТИРОВАТЬ:
Jinja2 предоставляет расширение «делать». Чтобы добавить это расширение в пирамиду, выполните следующие действия в файле __init__.py
#This line is alreadythere
config.include('pyramid_jinja2')
#Add this line
config.add_jinja2_extension('jinja2.ext.do')
В шаблоне
{% do get_params.update({'cri':'src'}) %}