поднять 404 вместо 500 в urls.py django - PullRequest
1 голос
/ 07 октября 2011

У меня есть веб-сайт на основе django.Есть несколько шаблонов URL, которые я не поймаю, скажем, www.mysite.com/12233445 www.mysite.com/@##$$$ www.mysite.com/alphabetagamma, это приводит к 500 страницам ошибок, я хочу, чтобы все такие нестандартные URL перенаправляли на страницу 404 ошибок.Любой ключ, который является лучшим способом сделать это?

Ответы [ 3 ]

1 голос
/ 07 октября 2011

Вы создали шаблон 404.html? Это происходит, когда у вас есть DEBUG = False в вашем settings.py, но вы еще не создали шаблон 404.html. Возникает исключение TemplateDoesNotExist, следовательно, ошибка 500.

1 голос
/ 07 октября 2011

перейти к вашим представлениям, выполнить все операции get / filter в пределах try, кроме блока.

try:

variable = object.get(some checks here)

except: object.DoesNotExist
 raise Http404

return (whatever)
1 голос
/ 07 октября 2011

Используя пользовательский handler500¶ , вы можете изменить код статуса ответа с 500 на 404. Заставить ваш проект вернуть этот пост может помочь вам понять, как это сделать - http://ilian.i -ni.org/custom-404-not-found-page-with-django-cms/

Но, как сказал @Daniel, не нормально получать 500 за не найденные страницы. Включите режим отладки и проверьте, какая ошибка приводит к 500.

...