Отладка Django отображает все переменные страницы

83

Есть ли тег шаблона (или любой другой трюк), который я могу использовать для отображения всех переменных, доступных на странице?

Eaman
источник

Ответы:

85

Есть несколько вариантов (некоторые из них уже перечислены ранее):

  1. Встроенный тег отладки django - я использую этот шаблон для его правильного отображения:

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

  2. Используйте теги приложения отладки шаблона django , такие как атрибуты, переменные и детали, или вы даже можете установить точку останова внутри шаблона, где вы можете проверить все с помощью отладчика pdb (или ipdb)

  3. Панель инструментов отладки Django - для этой цели есть панель шаблонов

Обычно все функции отладки работают только тогда, когда приложение находится в режиме DEBUG .

Роберт Луджо
источник
16

Совет профессионала. Используйте textareaи автоматический выбор onclickдля упрощения копирования и вставки:

<textarea onclick="this.focus();this.select()" style="width: 100%;"> {% filter force_escape %} {% debug %} {% endfilter %}</textarea>
Капуцин
источник
10

Панель инструментов отладки делает все это и многое, многое другое. Смотрите скринкаст, чтобы узнать больше. Если вам буквально нужны переменные, вы можете попробовать

assert False, locals()

на ваш взгляд

Том
источник
Thnaks. Поскольку я использую общий вид, есть ли способ вызвать «assert False, locals ()»
eaman
ребята, у меня установлена ​​и работает панель инструментов отладки, но она не отображает все переменные, доступные мне в шаблоне ... я что-то упускаю ... где это утверждение false, locals () идет и что именно делает ?
Дерек Орган
Если вы написали собственное представление, просто поместите его в конец представления. Если вы используете общий вид, вам нужно обернуть его в собственное представление. В любом случае, я думаю, это сработает.
Tom
8

Немного более сложное решение с лучшими вознаграждениями - загрузить панель инструментов django-debug (документация здесь )

Есть опция под названием «Шаблоны» с другой опцией «Переключить контекст», и вы можете видеть все переменные, переданные в ваш шаблон, а также возможность видеть код, стоящий за шаблоном.

Пример отладки шаблона django-debug-toolbar

Аарон К. де Брюн
источник
Я получаю в '<<triggers database query>>'качестве значения
Стефен
Я бы прочитал документацию, и если бы это не помогло, я бы пошел в проект django-debug-toolbar и запросил помощь: github.com/jazzband/django-debug-toolbar
Aaron C. de Bruyn
2

Если вы используете pycharm профессиональной версии, вы можете установить точки останова на некоторых строках в файле шаблона и просмотреть значение переменной.

Более подробно по этой ссылке. https://www.jetbrains.com/help/pycharm/debugging-django-templates.html

В. Перрен
источник