Авторедирект с ссылок которых нет в urlpatterns

У меня на сайте есть только две страницы : www.example.com и www.example.com/delete. Соответственно urlpatterns выглядит так:

urlpatterns = [
path('', MainView.as_view()),
path('delete/<int:number>', DeleteView.as_view())]

Если пользователь вводит в адресную строку www.example.com/about - он получает ошибку 404. Что нужно сделать что-бы при вводе любой ссылки которой нет в urlpatterns срабатывал redirect на www.example.com?


Ответы (1 шт):

Автор решения: Vadim.Sharoikin

Самый просто вариант это переопределить стандартное поведение handler404

во views

def bad_request(request, *args):
    return HttpResponseRedirect(reverse('main'))

в urls приложения я бы добавил name

urlpatterns = [
path('', MainView.as_view(),name='main'),
path('delete/<int:number>', DeleteView.as_view())]

в urls проекта

from django.conf.urls import handler404
handler500 = 'app_name.views.bad_request'
handler404 = 'app_name.views.bad_request'

При этом надо будет поставить DEBUG=False

→ Ссылка