Django как переопределить HttpResponse 404 вместо того, чтобы поднять исключение
В настоящее время я реализую пользовательскую страницу ошибки для моего проекта Django. Я столкнулся с проблемой, когда мой проект возвращает HttpResponse (404), пользовательская страница ошибки не отображается, вместо нее отображается страница отладки.
#in the views.py (i define 4 functions for error 400,403,404,500) but not for Http404
from django.shortcuts import render
def page_not_found_view(request, exception):
return render(request, 'error.html',status = 404,context = {
'status_code' : 404,
'message' : "The page you were looking for doesn't exist anymore.",
'title' : "Page Not Found"
})
def internal_server_error_view(request, *args, **argv):
return render(request, 'error.html',status = 500,context = {
'status_code' : 500,
'message' : "500 Internal Server Error.",
'title' : "Internal Server Error"
})
def forbidden_error_view(request, exception):
return render(request, 'error.html',status = 403,context = {
'status_code' : 403,
'message' : "403 Forbidden Error.",
'title' : "Forbidden Error"
})
def bad_request_error_view(request, exception):
return render(request, 'error.html',status = 400,context = {
'status_code' : 400,
'message' : "400 Bad Request Error.",
'title' : "Bad Request"
})
#in the urls.py (link 4 error handler)
hanlder400 = "gotani.views.bad_request_error_view"
handler404 = "gotani.views.page_not_found_view"
handler403 = "gotani.views.forbidden_error_view"
handler500 = "gotani.views.internal_server_error_view"
Моя проблема в том, что когда проект возвращает HttpResponse404, пользовательская страница ошибки не отображается нормально. Как я могу переопределить HttpResponse (объект / класс), или любой метод, как я могу создать новый класс HttpResponse (и определить функции внутри него, чтобы переопределить шаблон ошибки по умолчанию)