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, чтобы он заработал.

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