I can’t tell you how great middleware is in Django. It makes life so easy! Here is a good example. Django doesn’t handle ajax errors very good. It prints them to the client. Sure I can use firebug but I mainly use chrome now and don’t like to touch firefox anymore. So I wrote a bit of middleware to only print out errors in all ajax requests if the app was in DEBUG mode.
from django.conf import settings import traceback class AjaxErrorMiddleware: def process_exception(self, request, exception): if request.META.has_key('HTTP_X_REQUESTED_WITH') and settings.DEBUG: print traceback.format_exc()
I have added this to my Github project also for all my middleware. You just load it by adding it to your middleware section in your settings.py