Variable in jinja setzen


263

Ich würde gerne wissen, wie ich eine Variable mit einer anderen Variablen in jinja setzen kann. Ich werde erklären, ich habe ein Untermenü und ich möchte zeigen, welcher Link aktiv ist. Ich habe es versucht:

{% set active_link = {{recordtype}} -%}

Dabei ist recordtype eine Variable, die für meine Vorlage angegeben wurde.


14
Leute, die hier von Google landen: Sie werden wahrscheinlich in erster Linie an den offiziellen Dokumenten auf dem setTag interessiert sein , anstatt an dem spezifischen Syntaxfehler, den der Fragesteller hier gemacht hat, oder daran, wie er behoben werden kann .
Mark Amery

1
@ MarkAmery Ty! Besonders dieser Teil jinja.palletsprojects.com/de/2.11.x/templates/… ist äußerst hilfreich.
Ruohola

Antworten:


533

{{ }}Weist die Vorlage an , den Wert zu drucken . Dies funktioniert nicht in Ausdrücken, wie Sie es versuchen. Verwenden Sie stattdessen das {% set %}Template-Tag und weisen Sie den Wert wie im normalen Python-Code zu.

{% set testing = 'it worked' %}
{% set another = testing %}
{{ another }}

Ergebnis:

it worked

2
Wenn meine Variable dikt ist, was jetzt {% set dict.key = 'test'%} nicht funktioniert
Ib33X

Eine gelöschte Antwort enthielt auch diesen Link, der als ergänzende Information zu dieser Antwort dient: jinja.pocoo.org/docs/tricks/#highlighting-active-menu-items
Pascal

Es war eine großartige und einfache Erklärung.
Ich

Können wir eine globale Jinja-Variable erstellen und in der gesamten HTML-Datei verwenden, in die wir die Jinja-Variable einbetten? @Soviut
Sri Test

50

Schöne Abkürzung für mehrere Variablenzuweisungen

{% set label_cls, field_cls = "col-md-7", "col-md-3" %}

3
Dies scheint der Beantwortung der Frage nicht nahe zu kommen?
John R Perry

25

Richten Sie es einfach so ein

{% set active_link = recordtype -%}

7
Warum speziell so (das Minuszeichen am Ende, aber nicht am Anfang)? Dies würde nachfolgende, aber nicht führende Leerzeichen entfernen, wenn ich mich nicht irre. Zu welchem ​​Ende?
Leonid

14
Es ist in der ursprünglichen Frage ¯ \ _ (ツ) _ / ¯
Graham P Heath
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.