Блог

Python/Django: послать 404

В Django по умолчанию установлено, если адрес не найден в urls.py и в settings.py “DEBUG = False”, Django будет перенаправлять пользователя на страницу 404. Но так же можно и самостоятельно вернуть 404 ошибку. Есть несколько способов, послать 404 ошибку в Django.

Самый простой способ, выполнить исключение вашей View функции, выполнив исключение из пакета django.http, исключение Http404.

например, так:

from django.http import Http404  

def myView(request, param):  
  if not param:  
    raise Http404  

  return render_to_response('myView.html')

Это самый простой способ послать “Not Found” сообщение или загрузить и отобразить ваш шаблон “404.html”, если создадите его в корневой директории шаблонов. Django будет использовать это содержимое, возвращая пользователям при получении 404 ошибки.

Если вы хотите что-то более, вы можете сделать следующее:

from django.http import HttpResponseNotFound  

def myView(request, param):  
   if not param:  
      return HttpResponseNotFound('<h1>No Page Here</h1>')  

   return render_to_response('myView.html')