summaryrefslogtreecommitdiff
path: root/django/middleware/doc.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/middleware/doc.py')
-rw-r--r--django/middleware/doc.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/django/middleware/doc.py b/django/middleware/doc.py
new file mode 100644
index 0000000000..8f648e0665
--- /dev/null
+++ b/django/middleware/doc.py
@@ -0,0 +1,18 @@
+from django.conf import settings
+from django.utils import httpwrappers
+
+class XViewMiddleware:
+ """
+ Adds an X-View header to internal HEAD requests -- used by the documentation system.
+ """
+
+ def process_view(self, request, view_func, param_dict):
+ """
+ If the request method is HEAD and the IP is internal, quickly return
+ with an x-header indicating the view function. This is used by the
+ documentation module to lookup the view function for an arbitrary page.
+ """
+ if request.META['REQUEST_METHOD'] == 'HEAD' and request.META['REMOTE_ADDR'] in settings.INTERNAL_IPS:
+ response = httpwrappers.HttpResponse()
+ response['X-View'] = "%s.%s" % (view_func.__module__, view_func.__name__)
+ return response