2017-06-02 4 views
0

Ich versuche, einen Wörterbuchwert mit einer Konstante zu vergleichen, und ich merke, dass diese unterschiedlich behandelt werden, basierend darauf, ob ich eine If/Elif-Anweisung verwende und wenn ich nur den Wert vergleiche direkt mit dem in der Konstante gespeicherten Wert. Im Folgenden finden Sie ein Beispiel mit den relevanten Teilen des Kontextwörterbuchs und der Vorlage (nur Option 2 und 3 funktionieren). Fehle ich hier etwas, warum Option 1 nicht funktioniert?Django elif Vorlage Tag Rendering mit Konstante

Ansicht:

STATUS1 = 1 
STATUS2 = 2 
STATUS3 = 3 

context = { 
    'obj1': { 
     'status': STATUS3, 
     'otherattrs': 'other stuff' 
    }, 
    'STATUS1': STATUS1, 
    'STATUS2': STATUS2, 
    'STATUS3': STATUS3 
} 

Option 1 Vorlage:

{% if obj1.status == STATUS1 %} 
    button 1 
{% elif obj1.status == STATUS2 %} 
    button 2 
{% elif obj1.status == STATUS3 %} 
    button 3 
{% endif %} 

Option 2 Vorlage:

{% if obj1.status == STATUS1 %} 
    button 1 
{% endif %} 
{% if obj1.status == STATUS2 %} 
    button 2 
{% endif %} 
{% if obj1.status == STATUS3 %} 
    button 3 
{% endif %} 

Option 3 Vorlage:

{% if obj1.status == 1 %} 
    button 1 
{% elif obj1.status == 2 %} 
    button 2 
{% elif obj1.status == 3 %} 
    button 3 
{% endif %} 

Antwort

0

Nicht in der Lage, Ihr Problem zu reproduzieren, alle drei Ansätze Ausgabe button 3 für mich. Welches Ergebnis sehen Sie für die erste Option?