There are a few ways to redirect to a 404 page (or page not found error) in Django. The easiest way is to raise Django’s built in 404 exception, like so:
from django.http import Http404 def myView(request, param): if not param: raise Http404 return render_to_response('myView.html')
You can add a file called 404.html to your templates folder and Django will use this content to display to users during 404 errors.
If you want something a little more raw, you could do this:
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')
By default, if a url is not found in urls.py and ‘DEBUG = False’ in your settings.py, Django will redirect the user to a 404 page.
Here is a reference for returning errors in views and more detail on Request and Response objects.
Sat, Apr 4, 2009
Tech Tips