Das Django-Debug zeigt alle Variablen einer Seite an

81

Gibt es ein Vorlagen-Tag (oder einen anderen Trick), mit dem ich alle auf einer Seite verfügbaren Variablen anzeigen kann?

eaman
quelle

Antworten:

83

Es gibt verschiedene Optionen (von denen einige bereits zuvor aufgeführt sind):

  1. Django Builtin Debug Tag - Ich benutze dieses Boilerplate, um es richtig anzuzeigen:

    <pre> {% filter force_escape%} {% debug%} {% endfilter%} </ pre>

  2. Verwenden Sie die Tags der Django-Vorlagen-Debug- Anwendung wie Attribute, Variablen und Details, oder setzen Sie einen Haltepunkt innerhalb einer Vorlage, an dem Sie alles mit dem pdb- Debugger (oder der ipdb) überprüfen können.

  3. Django Debug-Symbolleiste - verfügt über ein Vorlagenfenster für diesen Zweck

Normalerweise funktionieren alle Debug-Funktionen nur, wenn sich die App im DEBUG- Modus befindet.

Robert Lujo
quelle
15

Profi-Tipp. Verwenden textareaund automatische Auswahl onclickzum einfacheren Kopieren und Einfügen:

<textarea onclick="this.focus();this.select()" style="width: 100%;"> {% filter force_escape %} {% debug %} {% endfilter %}</textarea>
thevangelist
quelle
10

Die Debug-Symbolleiste bietet all dies und noch viel mehr. Weitere Informationen finden Sie im Screencast . Wenn Sie buchstäblich nur die Variablen wollen, können Sie es versuchen

assert False, locals()

aus Ihrer Sicht

Tom
quelle
Thnaks. Da ich eine generische Ansicht verwende, gibt es eine Möglichkeit, einen "
Assert
Leute, ich habe die Debug-Symbolleiste installiert und funktioniert, aber sie zeigt nicht alle Variablen an, die mir in der Vorlage zur Verfügung stehen. Fehlt mir etwas? ?
Derek Organ
Wenn Sie eine benutzerdefinierte Ansicht geschrieben haben, platzieren Sie sie einfach am Ende Ihrer Ansicht. Wenn Sie eine generische Ansicht verwenden, müssen Sie sie in Ihre eigene Ansicht einschließen. Ich denke, das würde sowieso funktionieren.
Tom
8

Eine etwas komplexere Lösung mit besseren Belohnungen ist das Laden der Django-Debug-Symbolleiste (Dokumentation hier ).

Es gibt eine Option namens "Vorlagen" mit einer weiteren Option zum "Umschalten des Kontexts". Sie können alle an Ihre Vorlage übergebenen Variablen sowie den Code hinter der Vorlage anzeigen.

Beispiel für das Debuggen von Django-Debug-Symbolleistenvorlagen

Aaron C. de Bruyn
quelle
Ich '<<triggers database query>>'
bekomme
Ich würde die Dokumentation lesen und wenn das fehlschlägt, würde ich zum django-debug-toolbar-Projekt gehen und Hilfe anfordern: github.com/jazzband/django-debug-toolbar
Aaron C. de Bruyn