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