Это улучшение ответа Юджи, которое предоставляет трассировку стека, больше инструкций (для нас новичков в django) и является более простым.
Поместите этот код в файл где-нибудь в вашем приложении, например, PROJECT_ROOT/MAIN_APP/middleware/exceptions.py
,и убедитесь, что у вас есть пустой __init__.py
в том же каталоге.
import traceback
from django.http import HttpResponse
class PlainExceptionsMiddleware(object):
def process_exception(self, request, exception):
return HttpResponse(traceback.format_exc(exception), content_type="text/plain", status=500)
Теперь отредактируйте ваш settings.py
и найдите MIDDLEWARE_CLASSES = (
.Добавьте еще одну запись, чтобы она выглядела следующим образом:
MIDDLEWARE_CLASSES = (
# (all the previous entries)
# Plain text exception pages.
'MAIN_APP.middleware.exceptions.PlainExceptionsMiddleware',
)
Перезапустите django, и все готово!
Форматирование с поддержкой агента пользователя.
Если вам нравитсяЯ и разработка приложения и веб-сайта, поддерживаемого django, вы, вероятно, захотите показать приложению текстовые страницы с ошибками, а также хорошие отформатированные страницы браузеру.Простой способ сделать это - проверить пользовательский агент:
import traceback
from django.http import HttpResponse
class PlainExceptionsMiddleware(object):
def process_exception(self, request, exception):
if "HTTP_USER_AGENT" in request.META and "chrome" in request.META["HTTP_USER_AGENT"].lower():
return
return HttpResponse(traceback.format_exc(exception), content_type="text/plain", status=500)