Перенаправление всех ненайденных страниц на главную страницу
Я хочу перенаправить все 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"), ]
Надеюсь, это решит вашу проблему, спасибо