Custom 500 ошибка, иногда получая пустую страницу - PullRequest
0 голосов
/ 06 октября 2019

Когда я пытаюсь проверить пользовательскую страницу ошибки 500. Если тест работает, я получаю пустую страницу, на которой ничего нет («Внутренняя ошибка сервера») в моих журналах ошибок. Если происходит ошибка, я получаю пользовательскую страницу ошибки.

В представлениях:

def handler500(request):
    response = render_to_response("500.html")
    response.status_code = 500
    return response

def my_test_500_view(request):
    # Return an "Internal Server Error" 500 response code.
    return HttpResponse(status=500)

В Urls.py:

my path is : path('test500/', views.my_test_500_view, name='test500')

Также:

handler500 = 'myapp.views.handler500'

Если я действительно создаю ошибку, напримерудалив строку импорта для HttpResponse из my_test_500_view выше, пользовательская страница с ошибкой 500 фактически загружается, и я получаю эту ошибку на сервере, т.е. фактическую ошибку.

NameError: name 'HttpResponse' is not defined

Что не так с моим тестом, что этовозвращает пустую страницу. Моя 500 страница действительно работает? Я думаю, что это не работает должным образом, так как я получил по электронной почте предупреждение от поиска Google о сбое страницы 500 ошибок, и я часто получаю эту ошибку:

TypeError: view must be a callable or a list/tuple in the case of include().

Пожалуйста, помогите, что происходит.

1 Ответ

1 голос
/ 06 октября 2019

Возвращение HttpResponse(status=500) не заставляет Django вызывать представление handler500, оно просто возвращает пустую страницу (вы не указали контент в HttpResponse) и устанавливает статус 500 в заголовках ответа.

Если вы хотите проверить handler500, просто raise исключение в вашем тестовом представлении. Подойдет любое исключение.

...