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


83

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

Ответы:



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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.