Перенаправьте все URL на 404.html если не найден в urls.py в Джанго
Как я могу перенаправить любые шаблоны url на созданную страницу " 404.html " страница, если она не существует в urls.py вместо того, чтобы показывать ошибку django.
3 ответов
создайте представление, которое отобразит созданный 404.html и установите его как handler404 в urls.py.
handler404 = 'app.views.404_view'
Django отобразит представление отладки, если включена отладка. Иначе он будет отображать 404 страницы, как указано в handler404 для всех типов страниц, если он не существует.
документация Django на настройка представлений ошибок.
Регистрация этой ответ для полного примера.
в вашем views.py, просто добавьте следующий код (не нужно ничего менять в urls.py).
from django.shortcuts import render_to_response
from django.template import RequestContext
def handler404(request):
response = render_to_response('404.html', {},
context_instance=RequestContext(request))
response.status_code = 404
return response
поместите пользовательский 404.html в каталоге шаблонов.
перейти к проекту settings.py
и set DEBUG = True
to DEBUG = False
Затем Django перенаправляет все не установленные шаблоны на не найденные.
дополнительно, если вы хотите настроить шаблон 404, в вашем проекте urls.py
set
handler404 = ' app.просмотр.404_view'
тогда в ваших проектах view.py
from django.shortcuts import render_to_response
from django.template import RequestContext
def handler404(request):
response = render_to_response('404.html', {},
context_instance=RequestContext(request))
response.status_code = 404
return response
и, наконец, в свой templates
добавить 404.html
и заполните его тем, что вы хотите показать конечному пользователю.