Я бы хотел иметь возможность скопировать переменную в Jinja2 (2.10
) вместо того, чтобы просто ссылаться на нее, но не мог найти способ сделать это.
См. Следующий пример:
from jinja2 import Environment
from jinja2.ext import do
env = Environment(extensions=[do])
template = env.from_string('''
{%- set base = {"elems": {"a": "aa"}} -%}
{%- set data = {"elems": base.elems} -%}
{%- do data.elems.update({"a": "bb"}) -%}
{{ base.elems.a }} - "aa" expected
{{ data.elems.a }} - "bb" expected
''')
template.render()
Результат: 'bb - "aa" expected\nbb - "bb" expected'
Таким образом, это означает, что data.elems
не является копией base.elems
, а является ссылкой на нее.Мне нужно иметь копию base.elems
в data.elems
.
Я пытался:
base.get('elems')
base|attr('elems')
Но ни один из них не работал.Есть ли способ скопировать значения в Jinja2?