2012-03-27 2 views
2

Недавно я узнал о Werkzeug's interactive debugger в комбинации django_extensions для отладки кодов Django Python с ./manage.py runserver_plus.Как вы отлаживаете шаблоны django?

Но как вы отлаживаете внутри шаблонов? Если бы мне пришлось добавить какую-то тарабарщину, как {{ yasdasdasf }}, то Django молча игнорирует ее. Что еще более раздражает, когда вы ожидаете, что что-то появится в шаблоне, но это не потому, что есть ошибка.

Я думаю, что я прочитал некоторые решения об использовании {{ debug }} внутри шаблонов или TEMPLATE_STRING_IF_INVALID внутри settings.py, но это, кажется, как много «включать и выключать» для каждого раза вы хотите отладить или проверить что-то в шаблоне.

ответ

3

Вы можете сделать сокрушительный шаблон фильтр:

@register.filter 
def crash(request): 
    crash_here 

Так {{ request|crash }} должен поднять исключение, потому что crash_here не определенно, и вы должны быть в состоянии отладки его в Werkzeug.

+0

Хм, я не знаю. Прежде всего, 'assert False' будет лучше, чем ввести неопределенное имя переменной. Во-вторых, это будет показывать только отладочную информацию о коде Python, а не шаблоне. В-третьих, не нужно ли создавать папку templatetags, загружать пользовательский фильтр с помощью '{% load something%}' внутри шаблона, а затем набирать '{{request | crash}}' после того, как я думаю, что ошибка ? Есть ли более легкое решение? Я не против использовать IDE только для шаблонов (но скорее предпочел бы сейчас). Может быть, я должен использовать [Pycharm] (http://www.jetbrains.com/pycharm/whatsnew/)? – hobbes3

Смежные вопросы