Подтвердить что ты не робот

Как получить все переменные, определенные в шаблоне Django?

Я новичок в Django, и мне интересно, есть ли способ сбросить все переменные, доступные шаблону для целей отладки. В Python я могу использовать что-то вроде locals(), есть ли что-то эквивалентное для механизма шаблонов по умолчанию?

Примечание. Предположим, у меня нет доступа к просмотру для целей этого вопроса.

4b9b3361

Ответ 1

Оба ответа Ned и blaine хороши, но если вы действительно хотите добиться именно того, о чем вы просите, для него есть тег шаблона:

{% debug %}

Встроенные функции: отладка

Дополнительная информация в context_processor.debug, включая:

Если этот процессор включен, каждый RequestContext будет содержать debugи sql_queries, но только если ваша настройка DEBUG установлено значение Истина и IP-адрес запросов (request.META['REMOTE_ADDR']) находится в настройке INTERNAL_IPS

Как и предложение Peter G, я часто использую блок <div id="django-debug"><pre>{% debug|escape %}</pre></div> в конце страницы с display:none, но я могу проверить его на отладку.

Ответ 3

Вы также можете быть заинтересованы в django-template-repl, оболочке readline для языка шаблона Django. Вы можете удалить {% load repl %}{% pdb %} в свой шаблон и получить интерактивный отладчик.

Ответ 4

Хотя два решения, предоставленные другими членами, могут получить доступ ко всем переменным в шаблоне, я думал, что должен быть более простой способ (спасибо за ваши ответы, BTW).

Вот простой способ найти все переменные, переданные в шаблон.

  • Представьте ошибку в шаблоне, который вы хотите изучить. Добавление несуществующего тега работает.
  • Убедитесь, что отладка включена.
  • Перейдите на страницу, загружающую шаблон. (ваш сайт должен работать через серверы или другие средства).

Отладочный вывод для шаблона содержит раздел "TraceBack". Найдите трассировку для своего вида (вторая запись сверху в моем случае) и нажмите "Локальные вары". И все это там.