【发布时间】:2023-03-17 21:15:02
【问题描述】:
假设我将字典传递给我的 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 中传递给字典的值
(这个问题已经被问到here,但我发现答案令人困惑,它只回答了合并部分)
回答编辑:
Jinja2 提供了“do”扩展。要将该扩展名添加到金字塔,请在 __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'}) %}
【问题讨论】:
标签: python dictionary pyramid jinja2