Я не могу увидеть свои пользовательские страницы 404 и 500 в Django
Я пытаюсь сделать пользовательские страницы 404 и 500 в моем проекте Django, но когда я использую эти коды, я не вижу никакого результата!
views.py:
def handle404(request,exception):
return render(request,'400.html',status=404)
def handle500(request):
return render(request,'500.html',status=500)
url.py :
handler404 ='base.views.handle404'
handler500 = 'base.views.handle500'
я вижу только эту страницу : введите описание изображения здесь
у кого-нибудь есть предложения по улучшению моего кода?
Создали ли вы 400.html
в своих шаблонах? Под этим я подразумеваю, что вы следуете стандартным шаблонам Django: app_name/templates/app_name/400.html
?
(Кстати, я бы настоятельно рекомендовал вам сохранять имена, соответствующие ошибкам. Так вы сможете быстро ориентироваться в ваших HTML и вам не придется запоминать, какой HTML обрабатывает ту или иную ошибку)
UPDATE
Вы должны ввести определенный путь к HTML в функцию render.
Смысл: Если ваш HTML для ошибок находится в приложении test_app
, ваш путь будет test_app/400.html
:
def handle404(request,exception):
return render(request,'test_app/400.html',status=404)
Не уверен, что вы установили DEBUG=False
в вашем settings.py
файле.
Но это сработало для меня:
В моей app.views
:
# Handler error page 404
def handler404(request, exception):
return render(request, '404.html', {})
# Handler error page 500
def handler500(request):
return render(request, '500.html', {})
В return statement
я передал пустой контекст, {}
.
В файле моего проекта urls.py
:
handler404 = 'app.views.handler404'
handler500 = 'app.views.handler500'
setting.py
файл:
DEBUG=False