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
includeandimport, although you should be able to do both.include 'B.jinjasimply renders the template and ignores any variable assignments or macros within it.import 'B.jinja' as B, importsBas if it were a module, so you have to outputB.N.from 'B.jinja' import Nimports variableNdirectly.Change your import line to the last option and see if that fixes things. If you need more help, look at the documentation.