Django debug wyświetla wszystkie zmienne strony

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

Author: eaman, 2010-02-06

6 answers

Jeśli DEBUG jest włączony, istnieje znacznik szablonu o nazwie {% debug %}

 99
Author: Keryn Knight,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-06 18:55:35

Istnieje kilka opcji (niektóre z nich są już wymienione wcześniej):

  1. Django builtin debug tag - używam tego boilerplate, aby wyświetlić go poprawnie:

      {%filter force_escape %}
      {%debug %}
      {%endfilter %}
          
    
  2. Użyj django template debug znaczników aplikacji, takich jak atrybuty, zmienne i szczegóły lub możesz nawet ustawić punkt przerwania wewnątrz szablonu, gdzie możesz sprawdzić wszystko zpdb debugger (lub ipdb)

  3. Django debug toolbar - posiada do tego celu panel szablonów

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

 68
Author: Robert Lujo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-05 10:02:05

Pasek narzędzi debugowania robi to wszystko i wiele, wiele więcej. Zobacz screencast aby dowiedzieć się więcej. Jeśli dosłownie chcesz tylko zmiennych, możesz spróbować

assert False, locals()

In your view

 10
Author: Tom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-26 11:54:14

Pro tip. Użyj textarea i auto select onclick dla łatwiejszego kopiowania i wklejania:

<textarea onclick="this.focus();this.select()" style="width: 100%;"> {% filter force_escape %} {% debug %} {% endfilter %}</textarea>
 10
Author: thevangelist,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-09 21:58:56

Nieco bardziej złożonym rozwiązaniem z lepszymi nagrodami jest załadowanie django-debug-toolbar (documentation here)

Istnieje opcja o nazwie "szablony" z inną opcją "przełączania kontekstu" i możesz zobaczyć wszystkie zmienne przekazywane do szablonu, a także możliwość zobaczenia kodu za szablonem.

Przykład debugowania szablonu django-debug-toolbar

 6
Author: Aaron C. de Bruyn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-20 02:49:55

Jeśli używasz pycharm w wersji professional, możesz ustawić punkty przerwania w niektórych wierszach w pliku szablonu i wyświetlić wartość zmiennej.

Aby uzyskać więcej szczegółów, kliknij ten link. https://www.jetbrains.com/help/pycharm/debugging-django-templates.html

 0
Author: W.Perrin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-20 13:31:52