Machen Sie Django-Vorlagen streng

8

In einer Django-Vorlage wird ein Aufruf von {{ var }} automatisch fehlschlagen, wenn var nicht definiert ist. Das macht Vorlagen schwer zu debuggen. Gibt es eine Einstellung, die ich wechseln kann, damit django in diesem Fall eine Ausnahme auslöst?

Der einzige Hinweis auf eine Lösung, die ich online gefunden habe, ist Ссылка und das klingt schrecklich hacky.

    
garageàtrois 24.01.2012, 16:17
quelle

3 Antworten

4

Django & lt; = 1,9

Setze TEMPLATE_STRING_IF_INVALID = 'DEBUG WARNING: undefined template variable [%s] not found' in deinem settings.py .

Siehe Dokumentation:
Ссылка

Django & gt; = 1.10

Setze die Option string_if_invalid = 'DEBUG WARNING: undefined template variable [%s] not found' template in deinem settings.py .

Siehe Dokumentation: Ссылка

Lesen Sie auch: Ссылка

    
seler 24.01.2012, 16:25
quelle
2

Dieser Hack von djangosnippets löst eine Ausnahme aus, wenn eine nicht definierte Variable in einer Vorlage gefunden wird.

%Vor%     
utapyngo 10.08.2015 14:51
quelle
-1

Das ist Teil des Designs. Sie können Standardwerte angeben und basierend darauf, ob eine Variable im Kontext vorhanden ist oder nicht, wechseln. Es ermöglicht außerdem, dass Vorlagen sehr flexibel sind und die Wiederverwendbarkeit von Vorlagen fördern, anstatt einen strengen Ansatz "Jede Ansicht muss ihre eigene Vorlage haben" zu verwenden.

Mehr noch, Vorlagen sollten nicht wirklich "debuggt" werden. Die Idee ist, so viel wie möglich von Ihrer Logik außerhalb der Vorlage, in den Ansichten oder Modellen zu platzieren. Wenn Sie herausfinden möchten, warum eine Variable, die an den Kontext übergeben werden soll, dies nicht ist, ist der Ort für das Debuggen in Ihrer Ansicht. Lass einfach import pdb;pdb.set_trace() irgendwo fallen, bevor deine Ansicht zurückkehrt und herumstochert.

    
Chris Pratt 24.01.2012 16:27
quelle