I have a variable in jinja2: test1 = "this is value1 and this is value2"

with:

{{ test1 | replace("value1","my_value1") }}

I can replace value1 but I also need to replace value2 how can I do this?

I tried:

{{ test1 | replace("value1","my_value1") | replace("value2","my_value2") }}

But this then only replaces value2.

2

Best Answer


Your expression seems to work just fine. If I create a template withthe jinja2 expression from your question:

>>> import jinja2>>> t = jinja2.Template('{{ test1 | replace("value1","my_value1") | replace("value2","my_value2") }}')

And then render it, passing in a value for test1 that contains bothof the target replacement strings:

>>> output = t.render(test1="this has both value1 and value2")

I get a string that has both values replaced:

>>> print (output)this has both my_value1 and my_value2>>> 

currently you can replace variable by jinja

http://jinja.pocoo.org/docs/2.10/templates/#replace

{{ "Hello World"|replace("Hello", "Goodbye") }}-> Goodbye World{{ "aaaaargh"|replace("a", "d'oh, ", 2) }}-> d'oh, d'oh, aaargh