2010-09-16 4 views
141

Mi piacerebbe sapere come posso impostare una variabile con un'altra variabile in jinja. Spiegherò, ho un sottomenu e vorrei mostrare quale link è attivo. Ho provato questo:Imposta variabile in jinja

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

dove recordtype è una variabile fornita per il mio modello.

+69

Penso che sia giunto il momento di accettare Risposta di Soviut;) –

+1

Possibile duplicato di [Variabile modello di riferimento all'interno dell'espressione Jinja] (http://stackoverflow.com/questions/32024551/reference-template-variable-within-jinja-expression) – davidism

+1

@KyleWild, è stato solo 6 anno dalla risposta di Soviut. Vediamo se MyTux può allungarlo a 10 anni :) –

risposta

334

{{ }} indica il modello a stampa il valore, questo non funzionerà in espressioni come si sta tentando di fare. Utilizzare invece il tag modello {% set %} e quindi assegnare il valore nello stesso modo in cui si farebbe nel normale codice Python.

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

Risultato:

it worked 
+0

se la mia variabile è dettata cosa ora {% set dict.key = 'test'%} non funziona – Ib33X

+20

Sembra che tu stia cercando di fare troppo lavoro all'interno del modello. Ma penso che tu possa accedere al dict usando parentesi quadre. – Soviut

+0

Una risposta cancellata includeva anche questo collegamento, che serve come informazioni supplementari a questa risposta: http://jinja.pocoo.org/docs/tricks/#highlighting-active-menu-items – Pascal

9

Basta configurarlo come questo

{% set active_link = recordtype -%} 
+4

Perché specificamente così (il segno meno a la fine ma non all'inizio)? Ciò rimuoverà il trailing ma non lo spazio bianco, se non sbaglio. A che scopo? – Leonid

12

Nizza scorciatoia per più assegnazioni di variabili

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