Import / include zugewiesenen Variablen in Jinja2
Frage
In Jinja2, wie kann man den Zugriff zugewiesen Variablen (das heißt {% set X=Y %}
) innerhalb von Dateien mit include
eingebaut?
Ich würde erwarten, dass die folgende Arbeit gegeben zwei Jinja2 Dateien:
A.jinja
:
Stuff
{% include 'B.jinja' -%}
B has {{ N }} references
B.jinja
:
{% set N = 12 %}
Ich würde den A.jinja
erwarten, wenn mit Jinja2 zusammengestellt, erzeugen würde die folgende Ausgabe:
Stuff
B has 12 references
Es ist jedoch erzeugt:
Stuff
B has references
ich viel für jede Eingabe verpflichtet werden würde, wie die Jinja2 Variablen zuzugreifen, wie N
oben, in der Datei, die die Datei enthält, wo N
eingestellt ist.
Danke für das Lesen.
Brian
Lösung
Es gibt einen Unterschied zwischen include
und import
, obwohl Sie in der Lage sein sollten, beides zu tun.
-
include 'B.jinja
einfach macht die Vorlage und ignoriert alle Variablenbelegungen oder Makros innerhalb dieser Gruppe. -
import 'B.jinja' as B
EinfuhrenB
, als ob es ein Modul waren, so dass Sie die AusgabeB.N
haben. -
from 'B.jinja' import N
Importe VariableN
direkt.
Ändern Sie Ihre Import Linie auf die letzte Option und sehen, ob das behebt Dinge. Wenn Sie weitere Hilfe benötigen, sehen Sie der Dokumentation .