Перенаправление всех ненайденных страниц на главную страницу

Я хочу перенаправить все 404 страницы на главную страницу. Я пробовал это, но это не работает

app/views.py

from django.http import HttpResponse
from django.shortcuts import render, redirect

def home(request): return HttpResponse('<h1> HOME </h1>')

def redirectPNF(request, exception): return redirect('home')

app/urls.py

from . import views
urlpatterns = [ path('home', views.home, name="home"), ]

app/settings.py

handler404 = 'app.views.redirectPNF'
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
DEBUG = False

Просто добавьте эту строку в urls.py вместо settings.py
. Все остальное кажется нормальным.

В документации django также упоминается, что установка переменных handler из любого другого места не будет иметь никакого эффекта. Она должна быть задана из URLconf

Стандартные представления ошибок в Django должны быть достаточными для большинства веб-приложений, но их можно легко переопределить, если вам нужно какое-либо пользовательское поведение. Укажите обработчики, как показано ниже, в вашем URLconf (установка их в любом другом месте не будет иметь никакого эффекта).

app/urls.py

from . import views

handler404 = 'app.views.redirectPNF' # Added this line in URLconf instead of settings.py


urlpatterns = [ path('home', views.home, name="home"), ]

Надеюсь, это решит вашу проблему, спасибо

Вернуться на верх