Bestimme leere Template-Variable in Django

8

Ich kann nicht feststellen, ob eine Variable leer ist, wenn sie in der Vorlage verwendet wird. Ich habe die gesamte Sammlung durchgespielt und suche in jedem die Variable narrative_text .

Ich habe die leere Variable mit

getestet %Vor%

Ich bemerke, dass das Steuerelement diesen Block betritt, aber druckt nichts / leer wenn das

%Vor%

wurde gefunden.

Also, wie überprüfe ich genau, ob die Variable leer ist?

Ich habe die Dokumente gelesen und festgestellt, dass Leere Vorlagenvariablen werden durch '' ersetzt.

Der Doc sagt das

  

Das Vorlagensystem fügt den Wert der Einstellung TEMPLATE_STRING_IF_INVALID ein.

Müssen wir das explizit in settings.py eingeben? Ich habe es versucht, aber ich konnte es immer noch nicht schaffen.

%Vor%

all_narratives wird von einem Pymongo-Datenbankaufruf zurückgegeben.

%Vor%     
sbose 20.09.2012, 06:44
quelle

4 Antworten

24

Pipe durch die Länge und teste deinen Test gegen diesen Wert.

%Vor%     
Wade Williams 25.06.2013, 21:24
quelle
2

Benutze einfach {% if narratives.narrative_text %} , denke ich. Es verwendet Pythons implizites False, das für leere Strings, leere Arrays, leere Dicts, None , False , 0 usw. gilt.

    
Torsten Engelbrecht 20.09.2012 06:55
quelle
1

Sie können Filter für benutzerdefinierte Vorlagen schreiben , is_empty zu prüfen. Gibt false zurück, wenn die Variable leer ist, und true , wenn ein Wert existiert.

%Vor%     
Ahsan 20.09.2012 07:13
quelle
0

Ich habe jijnja verwendet, das ist viel ähnlicher und einfacher und ich denke, es würde funktionieren, wenn du es tust

%Vor%

Es verwendet python implizite True/False,None, etc, um den Job zu erledigen. Im einfachsten Fall verwenden Sie Python-Variablen in {{ }} und Conditionals usw. in {% %}

    
emiljho 20.09.2012 07:59
quelle