В одном из моих взглядов у меня есть код:Django предоставляет шаблон `500.html` вместо` 404.html`
raise Http404
Когда DEBUG=False
Django предоставляет шаблон 500.html
вместо правильного 404.html
! Я не понимаю, почему!
EDIT: Когда я DEBUG=True
получить стандартный один (Джанго)
Page not Found (404)
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
Более того, что в консоли runserver
я вижу ясно 404
код. Вместо этого, при установке DEBUG=False
в консоли я получаю 500
!! Это так странно.
РЕДАКТИРОВАТЬ 2: Если я разместил заявление на печать перед поднятием Http404
Я вижу сообщение, когда DEBUG=True
, но не тогда, когда оно False
!
РЕДАКТИРОВАТЬ 3: Я могу подтвердить, что когда DEBUG=False
заявление raise Http404
так и не было достигнуто. Как это возможно?
Update
На самом деле с DEBUG=False
на каждом URL я получаю 500. В то время как с DEBUG=True
этого не происходит. Как это возможно? Он должен работать одинаково. Я начинаю думать, что это ошибка Django.
Один Raison может быть потому, что ваш шаблон 400.html генерирует ошибку 500, вы можете разместить свой шаблон? – maazza
И что происходит с DEBUG = True? –
@maazza: Я сомневаюсь. Я создал новый 404.html и написал в нем всего 404. Тем не менее, он не получился. – rubik