Mit der Django-Vorlagen-Engine kann ich eine andere Teilvorlage einfügen, während ich einen benutzerdefinierten Kontext mit benannten Argumenten wie folgt einstelle:
{% include "list.html" with articles=articles_list1 only %}
{% include "list.html" with articles=articles_list2 only %}
Wie Sie Gesetzt sein können, articles_list1
und articles_list2
sind zwei verschiedene Listen, aber ich kann die gleiche Wiederverwendung list.html
Vorlage , die das verwenden werden articles
variabel.
Ich versuche, mit Jinja2 dasselbe zu erreichen, aber ich kann nicht sehen, wie dies empfohlen wird, da das with
Schlüsselwort nicht unterstützt wird.
Jinja2 hat eine Erweiterung , die das
with
Schlüsselwort aktiviert - es gibt Ihnen nicht die gleiche Syntax wie Django und es funktioniert möglicherweise nicht so, wie Sie es erwarten, aber Sie könnten dies tun:Wenn dies
list.html
jedoch im Grunde nur als Möglichkeit zum Erstellen einer Liste dient, möchten Sie diese möglicherweise in eine Liste ändern.macro
Dies gibt Ihnen viel mehr Flexibilität.quelle
Auf diese Weise können Sie mehrere Variablen an die Jinja2 Include- Anweisung übergeben - (indem Sie Variablen innerhalb der With- Anweisung durch Komma aufteilen ):
quelle