Supongamos que paso un diccionario a mi plantilla jinja2.
En la vista que tienen algo así comoModificar los atributos del diccionario en jinja2
d = {}
#set other template stuff into d
get_params['cri'] = 'time'
get_params['order'] = 'asc'
d['get_params'] = get_params
return d
En la plantilla que tengo que cambiar el valor de las claves de get_params. Lo lógico
{% set get_params.cri='src' %}
falla con un error
TemplateSyntaxError: expected token '=', got '.'
Mi pregunta es ¿cómo puedo modificar los valores pasados a un diccionario en Jinja2
(Esta pregunta se ha hecho here, pero encuentra la respuesta confusa y solo responde a la parte de fusión)
Responder EDITAR:
Jinja2 proporciona la extensión 'do'. Para añadir que la extensión de la pirámide, haga lo siguiente en el archivo
#This line is alreadythere
config.include('pyramid_jinja2')
#Add this line
config.add_jinja2_extension('jinja2.ext.do')
__init__.py
En la plantilla
{% do get_params.update({'cri':'src'}) %}
Obtuve la parte de actualización (En realidad ahora lo hago en etiquetas {{}} pero eso imprime Ninguno). ¿Cómo uso un bloque {% do%}? El código será muy apreciado. Específicamente, cómo habilitar extensiones jinja2 desde la pirámide – RedBaron
Scratch that ... logró hacerlo – RedBaron