получить доступ к исключению в Django 500.html? - PullRequest
1 голос
/ 28 января 2011

Как я могу получить доступ к информации об исключении в 500.html?

Ответы [ 2 ]

1 голос
/ 28 января 2011

Самый простой способ - написать промежуточное программное обеспечение, которое переопределяет process_exception.

http://docs.djangoproject.com/en/dev/topics/http/middleware/#process-exception

class ProcessExceptionMiddleware(object):
    def process_exception(self, request, exception):
        response = direct_to_template(request, "my_500_template", {'exception': exception})
        response.status_code = 500
        return response
0 голосов
/ 28 января 2011

Вы можете создать подкласс django.core.handlers.base.BaseHandler или, что лучше, одну из реализаций, таких как django.core.handlers.wsgi.WSGIHandler, и изменить метод handle_uncaught_exception(self, request, resolver, exc_info).Последний аргумент - это информация об исключении, возвращаемая sys.exc_info.В случае WSGI вы должны определить пользовательский обработчик в вашем файле WSGI, например.

Простая перезапись handler500 в вашем URLconf не будет работать, потому что эта функция не получает никакой информации о действительном исключении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...