Angenommen, ich übergebe ein Wörterbuch an meine jinja2-Vorlage.
Nach Ansicht habe ich so etwas wieÄndern der Wörterbuchattribute in jinja2
d = {}
#set other template stuff into d
get_params['cri'] = 'time'
get_params['order'] = 'asc'
d['get_params'] = get_params
return d
In der Vorlage ich den Wert des Schlüssels von get_params ändern muß. Die logische Sache
{% set get_params.cri='src' %}
nicht mit einem Fehler
TemplateSyntaxError: expected token '=', got '.'
Meine Frage ist, wie kann ich die Werte in einem Wörterbuch in jinja2 geben ändern
(Diese Frage here wurde gefragt, aber ich finden Sie die Antwort verwirrend und es beantwortet nur die Verschmelzung Teil)
Beantworten EDIT:
Jinja2 bietet die "Do" -Erweiterung. Um diese Erweiterung Pyramide hinzuzufügen, gehen Sie wie folgt in der Datei __init__.py
#This line is alreadythere
config.include('pyramid_jinja2')
#Add this line
config.add_jinja2_extension('jinja2.ext.do')
In der Vorlage
{% do get_params.update({'cri':'src'}) %}
Ich habe den Update-Teil (eigentlich macht es jetzt in {{}} Tags, aber das druckt keine). Wie verwende ich einen {% do%} Block? Code wird sehr geschätzt. Vor allem, wie man jinja2 Erweiterungen von Pyramide – RedBaron
Scratch, die ... es geschafft haben, zu tun – RedBaron