8
假设我将字典传递给了我的jinja2模板。
在视图中我有一些像在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'}) %}
我得到了更新部分(实际上现在在{{}}标签中执行此操作,但打印为无)。如何使用{%do%}块。代码将非常感谢。 Espicially如何启用金字塔jinja2扩展 – RedBaron
Scratch that ...设法做到这一点 – RedBaron