aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/middleware.py
diff options
context:
space:
mode:
Diffstat (limited to 'debug_toolbar/middleware.py')
-rw-r--r--debug_toolbar/middleware.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py
index de78254..7f0f4bc 100644
--- a/debug_toolbar/middleware.py
+++ b/debug_toolbar/middleware.py
@@ -67,10 +67,14 @@ class DebugToolbarMiddleware(object):
def process_request(self, request):
if self.show_toolbar(request):
if self.override_url:
- original_urlconf = getattr(request, 'urlconf', settings.ROOT_URLCONF)
+ original_urlconf = __import__(getattr(request, 'urlconf', settings.ROOT_URLCONF), {}, {}, ['*'])
debug_toolbar.urls.urlpatterns += patterns('',
('', include(original_urlconf)),
)
+ if hasattr(original_urlconf, 'handler404'):
+ debug_toolbar.urls.handler404 = original_urlconf.handler404
+ if hasattr(original_urlconf, 'handler500'):
+ debug_toolbar.urls.handler500 = original_urlconf.handler500
self.override_url = False
request.urlconf = 'debug_toolbar.urls'
@@ -96,15 +100,15 @@ class DebugToolbarMiddleware(object):
{'redirect_to': redirect_to}
)
response.cookies = cookies
- if response.status_code == 200:
- for panel in self.debug_toolbars[request].panels:
- panel.process_response(request, response)
+ if response.status_code == 200 and 'gzip' not in response.get('Content-Encoding', ''):
if response['Content-Type'].split(';')[0] in _HTML_TYPES:
+ for panel in self.debug_toolbars[request].panels:
+ panel.process_response(request, response)
response.content = replace_insensitive(
smart_unicode(response.content),
self.tag,
smart_unicode(self.debug_toolbars[request].render_toolbar() + self.tag))
- if response.get('Content-Length', None):
- response['Content-Length'] = len(response.content)
+ if response.get('Content-Length', None):
+ response['Content-Length'] = len(response.content)
del self.debug_toolbars[request]
return response