In Jinja2, how can one access assigned variables (i.e. {% set X=Y %}
) within files incorporated with include
?
I'd expect the following to work given two Jinja2 files:
A.jinja
:
Stuff
{% include 'B.jinja' -%}
B has {{ N }} references
B.jinja
:
{% set N = 12 %}
I'd expect that A.jinja
, when compiled with Jinja2, would produce the following output:
Stuff
B has 12 references
However, it produces:
Stuff
B has references
I'd be much obliged for any input as to how to access the Jinja2 variables, such as N
above, in the file that includes the file where N
is set.
Thank you for reading.
Brian
There's a difference between include
and import
, although you should be able to do both.
include 'B.jinja
simply renders the template and ignores any variable assignments or macros within it.import 'B.jinja' as B
, imports B
as if it were a module, so you have to output B.N
.from 'B.jinja' import N
imports variable N
directly.Change your import line to the last option and see if that fixes things. If you need more help, look at the documentation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With