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

War es hilfreich?

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 Einfuhren B, als ob es ein Modul waren, so dass Sie die Ausgabe B.N haben.
  • from 'B.jinja' import N Importe Variable N 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 .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top