diff -r 000000000000 -r 0d40e90630ef web/lib/django/contrib/flatpages/middleware.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/django/contrib/flatpages/middleware.py Wed Jan 20 00:34:04 2010 +0100 @@ -0,0 +1,18 @@ +from django.contrib.flatpages.views import flatpage +from django.http import Http404 +from django.conf import settings + +class FlatpageFallbackMiddleware(object): + def process_response(self, request, response): + if response.status_code != 404: + return response # No need to check for a flatpage for non-404 responses. + try: + return flatpage(request, request.path_info) + # Return the original response if any errors happened. Because this + # is a middleware, we can't assume the errors will be caught elsewhere. + except Http404: + return response + except: + if settings.DEBUG: + raise + return response