]> git.openstreetmap.org Git - osqa.git/blob - forum/middleware/custom_pages.py
adding middleware that handles custom pages
[osqa.git] / forum / middleware / custom_pages.py
1 from django.contrib.flatpages.views import flatpage
2 from django.http import Http404
3 from django.conf import settings
4
5 from forum.views.meta import page
6
7 class CustomPagesFallbackMiddleware(object):
8     def process_response(self, request, response):
9         if response.status_code != 404:
10             return response # No need to check for a flatpage for non-404 responses.
11         try:
12             return page(request)
13         # Return the original response if any errors happened. Because this
14         # is a middleware, we can't assume the errors will be caught elsewhere.
15         except Http404:
16             return response
17         except:
18             if settings.DEBUG:
19                 raise
20             return response