Django 3.2 как перенаправить 404 на домашнюю страницу
Я нашел несколько ответов о 404 редиректе для Django, но в основном они относятся к более старой версии Django.
Вот что у меня есть в Django 3.2.6 DEBUG установлен в False, чтобы вызвать поведение 404
urls.py
handler404 = views.view_404
views.py
def view_404(request, exception=None):
return HttpResponseRedirect("/")
Нет ошибки в runserver, но страница 404 по-прежнему возвращает "Not Found
".Запрошенный ресурс не найден на этом сервере.".
Попробуйте это:
urls.py
handler404 = 'myappname.views.view_404'
views.py
def view_404(request, exception=None):
return HttpResponseRedirect("/")
Обратите внимание, что для отображения пользовательского шаблона вы можете просто создать шаблон с именем 404.html
в вашем основном каталоге шаблонов.
Для получения разъяснений вы можете прочитать документацию.
Проблема у вас в том, что вы определили свой handler404
в файле приложения urls.py
.
Вам нужно переместить его в файл проекта urls.py
, чтобы он заработал.