Debugowanie Django wyświetla wszystkie zmienne strony

83

Czy istnieje tag szablonu (lub inna sztuczka), której mogę użyć do wyświetlenia wszystkich zmiennych dostępnych na stronie?

eaman
źródło

Odpowiedzi:

85

Istnieje kilka opcji (niektóre z nich zostały już wymienione wcześniej):

  1. Wbudowany tag debugowania django - używam tego standardowego szablonu, aby go poprawnie wyświetlić:

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

  2. Użyj tagów aplikacji do debugowania szablonów django , takich jak atrybuty, zmienne i szczegóły, lub możesz nawet ustawić punkt przerwania w szablonie, w którym możesz sprawdzić wszystko za pomocą debugera pdb (lub ipdb)

  3. Pasek narzędzi debugowania Django - posiada do tego panel szablonów

Zwykle wszystkie funkcje debugowania działają tylko wtedy, gdy aplikacja jest w trybie DEBUG .

Robert Lujo
źródło
16

Wskazówka dla profesjonalistów. Użyj textareai wybierz automatycznie onclickdla łatwiejszego kopiowania i wklejania:

<textarea onclick="this.focus();this.select()" style="width: 100%;"> {% filter force_escape %} {% debug %} {% endfilter %}</textarea>
kapucyn
źródło
10

Pasek debugowania to wszystko to i wiele, wiele więcej. Zobacz prezentację, aby dowiedzieć się więcej. Jeśli chcesz mieć tylko zmienne, możesz spróbować

assert False, locals()

Twoim zdaniem

Tomek
źródło
Thnaks. Ponieważ używam widoku ogólnego, czy istnieje sposób na wezwanie „assert False, locals ()”
eaman
chłopaki, mam zainstalowany i działający pasek narzędzi do debugowania, ale nie wyświetla wszystkich dostępnych dla mnie zmiennych w szablonie ... brakuje mi czegoś ... gdzie to assert false, locals () idą i co dokładnie robi ?
Derek Organ
Jeśli napisałeś widok niestandardowy, po prostu umieść go pod koniec widoku. Jeśli używasz widoku ogólnego, musisz go opakować we własnym widoku. W każdym razie myślę, że to zadziała.
Tom
8

Nieco bardziej złożonym rozwiązaniem z lepszymi nagrodami jest załadowanie paska narzędzi django-debug (dokumentacja tutaj )

Dostępna jest opcja o nazwie „Szablony” z inną opcją „Przełącz kontekst”, dzięki której można zobaczyć wszystkie zmienne przekazane do szablonu, a także kod znajdujący się za szablonem.

Przykład debugowania szablonu django-debug-toolbar

Aaron C. de Bruyn
źródło
Dostaję '<<triggers database query>>'jako wartość
stephen
Przeczytałbym dokumentację, a jeśli to się nie powiedzie, poszedłbym do projektu django-debug-toolbar i poprosiłbym o pomoc: github.com/jazzband/django-debug-toolbar
Aaron C. de Bruyn