app/django/contrib/flatpages/middleware.py
author Lennard de Rijk <ljvderijk@gmail.com>
Thu, 04 Jun 2009 21:58:05 +0200
changeset 2384 71780864a5ed
parent 323 ff1a9aa48cfd
permissions -rw-r--r--
Now showing link to edit the home page document on the home page. This will only show up if you have the right to edit the document. Update issue 271 Now also working for home pages.

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