2013-07-16 10 views
5

Sto usando django 1.5, ho bisogno di controllare se una variabile è definita (e non funziona se la variabile è definita ma None, 0, "", ecc. .). Qualcosa di simile:Verifica se una variabile è definita in lingua template templating

{% ifexists a_variable %} 
    <p> Hey the variable exists </p> 
{% endifexists %} 

non il modo migliore per fare questo ...

+6

Questa mi sembra una domanda ragionevole su come distinguere tra una variabile impostata su qualcosa di falso nel contesto e una variabile che non è impostata affatto. argomento –

risposta

3

Si prega di leggere il documentation.

La {% se%} tag valuta una variabile, e se tale variabile è “vero” (cioè esiste ...

{% if athlete_list %} 
    Number of athletes: {{ athlete_list|length }} 
{% elif athlete_in_locker_room_list %} 
    Athletes should be out of the locker room soon! 
{% else %} 
    No athletes. 
{% endif %} 

Si potrebbe anche voler controllare la piuttosto pratico tutorial su Django per writing public views.

+6

sicuramente se athlete_list era impostato su [] o None sarebbe andato al resto? Non è quello che voglio, ne ho bisogno in modo che io possa sapere se una variabile è impostata (vedi http://codepad.org/OJbkRWYN) – Cucwx

+2

@Cucwx Perché stai inviando variabili eventualmente non impostate al modello? In entrambi i casi, se una variabile non è valida (non impostata), Django la imposterà sul valore di "TEMPLATE_STRING_IF_INVALID', potresti impostare che sia qualcos'altro e quindi controllare se' person' o 'coach' è uguale a quello; vedi [Variabili modello non valide] (https://docs.djangoproject.com/en/1.1/ref/templates/api/#invalid-template-variables). Anche se questa non è davvero una buona idea (come espresso dal doc stesso). –

+0

@ Il commento di SamStudio8 dovrebbe sostituire la risposta in quanto è più utile. –

Problemi correlati