2010-09-16 12 views
141

Chciałbym wiedzieć, jak ustawić zmienną z inną zmienną w jinja. Wyjaśnię, mam podmenu i chciałbym pokazać, który link jest aktywny. Próbowałem to:Ustaw zmienną w jinja

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

gdzie jest zmienną RECORDTYPE podane dla mojego szablonu.

+69

Myślę, że najwyższy czas, aby zaakceptować Odpowiedź Soviuta;) –

+1

Możliwy duplikat [Zmienna szablonu odniesienia w wyrażeniu Jinja] (http://stackoverflow.com/questions/32024551/reference-template-variable-within-jinja-expression) – davidism

+1

@KyleWild, to było tylko 6 rok od odpowiedzi Soviuta. Zobaczmy, czy MyTux może rozciągnąć go do 10 lat :) –

Odpowiedz

334

{{ }} informuje szablon, aby wydrukować wartość, to nie będzie działać w wyrażeniach, takich jak próbujesz zrobić. Zamiast tego użyj znacznika szablonu {% set %}, a następnie przypisz wartość w taki sam sposób, jak w normalnym kodzie pythona.

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

Wynik:

it worked 
+0

jeśli moja zmienna to dyktuje co teraz {% zestaw dict.key = 'test'%} nie działa – Ib33X

+20

Wygląda na to, że próbujesz wykonać za dużo pracy wewnątrz szablonu. Ale myślę, że możesz uzyskać dostęp do dyktatu za pomocą nawiasów kwadratowych. – Soviut

+0

Usunięta odpowiedź zawierała również ten link, który służy jako informacja uzupełniająca dla tej odpowiedzi: http://jinja.pocoo.org/docs/tricks/#highlighting-active-menu-items – Pascal

9

Wystarczy ustawić go jak ten

{% set active_link = recordtype -%} 
+4

Dlaczego tak właśnie jest (znak minus na koniec, ale nie na początku)? To by usunęło końcowe, ale nie wiodące białe spacje, jeśli się nie mylę. W jakim celu? – Leonid

12

Nicea skrót dla wielu zmiennych zadań

{% set label_cls, field_cls = "col-md-7", "col-md-3" %} 
Powiązane problemy