Согласно документации это должно быть довольно просто: мне просто нужно определить handler404
. В настоящее время я занимаюсь в своем верхнем urls.py
:
urlpatterns = [
...
]
handler404 = 'myapp.views.handle_page_not_found'
Приложение установлено. Соответствующее представление просто (на данный момент я просто хочу перенаправить на главную страницу в случае 404):
def handle_page_not_found(request):
return redirect('homepage')
Но это не влияет: отображается стандартная (отладочная) 404
страница.
Документация немного неоднозначна:
- где должен быть определен
handler404
? Документация говорит вURLconf
но где именно? У меня есть несколько приложений, каждый с другимurls.py
Могу ли я поместить его в любой из них? В верхнемURLconf
? Зачем? Где это документировано? - что поймает этот обработчик? Будет ли он поймать
django.http.Http404
,django.http.HttpResponseNotFound
,django.http.HttpResponse
(соstatus=404
)?