Как я могу заставить django показывать мне исключения из функций, вызываемых в шаблонах? - PullRequest
3 голосов
/ 26 мая 2011

Django имеет (обычно хорошо) поведение превращения исключений в шаблонах в пустые строки.Поэтому, если я сделаю {{object.fn_which_throws_exception}}, я получу пустую строку.Но иногда я хотел бы узнать что-то об исключении: есть ли способ сделать django настоящим или записать подробности таких исключений?

Ответы [ 2 ]

2 голосов
/ 26 мая 2011

Если вы используете runserver, вы можете использовать pdb для пошагового выполнения кода.

Добавьте import pdb; pdb.set_trace() над проблемным кодом. Перейдите по указанному URL в вашем браузере, и pdb должен приостановить выполнение и позволить вам шаг за шагом проходить код.

http://docs.python.org/library/pdb.html

0 голосов
/ 26 мая 2011

Если вы работаете в среде разработки, убедитесь, что для DEBUG и TEMPLATE_DEBUG установлено значение True.

Если вы работаете в производственной среде, лучше всего добавить django-sentry в ваш проект.Он отслеживает всю информацию, которую вы запускаете с DEBUG=True.Это абсолютно удивительное программное обеспечение, которое сэкономит вам бесконечное количество времени, когда что-то пойдет не так.

РЕДАКТИРОВАТЬ: О, еще одна вещь.Вы всегда можете заключить код в блок try... except и вернуть исключение следующим образом:

def fn_which_throws_exception():
    import sys
    try:
        # code that might raise exception
    except:
        return sys.exc_info()
...