2013-10-02 4 views
1

Я пытаюсь изучить django, и у меня есть небольшой тестовый сервер (не девел), в котором я пытаюсь разместить небольшой блог-сайт (аналогично официальному учебнику).django class based view custom 404 и 500

Я хотел бы иметь собственные 404 и 500 представлений, поэтому, я следующий в urls.py:

from mystuff.views import Template404View, Template500View 
handler404 = Template404View.as_view() 
handler500 = Template500View.as_view() 

и в моем views.py, я следующее:

class Template404View(TemplateView): 
    template_name = "404.html" 

class Template500View(TemplateView): 
    template_name = "500.html" 

где , 404.html и 500.html присутствуют в моем каталоге site_templates.

Однако, когда я размещаю это на своем тестовом сервере, вместо того, чтобы видеть 400 или 500 пользовательских страниц, все, что я вижу, это Internal Server Error.

Я попытался посмотреть на подобные вопросы на SO, и я вижу following, но это не похоже, чтобы помочь ...

Любые советы будут оценены ... Спасибо.

ответ

1

я сегодня была аналогичная проблема: Проблема заключалась в том, что я имел немецкие умляуты в моем 500-странице и при визуализации 500-страницу, мой апач имел внутренняя ошибка сервера и, следовательно, поднял ошибку apache 200. Поэтому проверьте свою 500-страничную страницу и проверьте ее отдельно и посмотрите, правильно ли она отображается, когда вы ее вызываете.

Но так как вы следуете руководству: почему бы не принять подход, описанный в Chapter 3? Просто напишите файл 500.html и поместите его в my_app/templates. Это работает хорошо, никаких дополнительных просмотров или URL-адресов не требуется.

0

Вы импортируете свои пользовательские представления из mystuff, пока они определены в views.py. попробуйте импортировать их из моих stuff.views.

установка Также DEBUG = True может дать вам некоторое представление

+0

Извините, я сделал опечатку '.views' - ​​я исправил это сейчас. Havent попробовал DEBUG = True еще tho - но я предполагаю, что это просто выбросит django 404 по умолчанию - это не то, что я хочу. – JohnJ

+0

Если вы получаете настройку Internal Server Error (500) «DEGUG = True», вы узнаете больше о причине ошибки. Вероятно, ошибка в некотором импорте или что-то в этом роде раньше, поэтому вы не можете установить правильный 500.html сервер. – esauro

Смежные вопросы