aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/middleware.py
diff options
context:
space:
mode:
authorAlex Gaynor2009-09-25 22:48:16 -0400
committerAlex Gaynor2009-09-25 22:48:16 -0400
commitc91d9b7e48528fcc901b567d28ed67bdcb42bffa (patch)
treeca340f2d17a233a79ce650c7bd676b3aceb13de1 /debug_toolbar/middleware.py
parent0c8e7a486088139597590acc96e13a9ec0ec3f46 (diff)
downloaddjango-debug-toolbar-c91d9b7e48528fcc901b567d28ed67bdcb42bffa.tar.bz2
Mkae this threadsafe
Diffstat (limited to 'debug_toolbar/middleware.py')
-rw-r--r--debug_toolbar/middleware.py22
1 files changed, 10 insertions, 12 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py
index 29c6336..cd2386c 100644
--- a/debug_toolbar/middleware.py
+++ b/debug_toolbar/middleware.py
@@ -32,7 +32,7 @@ class DebugToolbarMiddleware(object):
on outgoing response.
"""
def __init__(self):
- self.debug_toolbar = None
+ self.debug_toolbars = {}
self.original_urlconf = settings.ROOT_URLCONF
self.original_pattern = patterns('', ('', include(self.original_urlconf)),)
self.override_url = True
@@ -63,22 +63,19 @@ class DebugToolbarMiddleware(object):
self.override_url = False
request.urlconf = 'debug_toolbar.urls'
- self.debug_toolbar = DebugToolbar(request)
- for panel in self.debug_toolbar.panels:
+ self.debug_toolbars[request] = DebugToolbar(request)
+ for panel in self.debug_toolbars[request]:
panel.process_request(request)
- elif self.debug_toolbar:
- self.debug_toolbar = None
- return None
def process_view(self, request, view_func, view_args, view_kwargs):
- if self.debug_toolbar:
- for panel in self.debug_toolbar.panels:
+ if request in self.debug_toolbars:
+ for panel in self.debug_toolbars[request].panels:
panel.process_view(request, view_func, view_args, view_kwargs)
def process_response(self, request, response):
- if not self.debug_toolbar:
+ if request not in self.debug_toolbars:
return response
- if self.debug_toolbar.config['INTERCEPT_REDIRECTS']:
+ if self.debug_toolbars[request].config['INTERCEPT_REDIRECTS']:
if isinstance(response, HttpResponseRedirect):
redirect_to = response.get('Location', None)
if redirect_to:
@@ -88,8 +85,9 @@ class DebugToolbarMiddleware(object):
)
if response.status_code != 200:
return response
- for panel in self.debug_toolbar.panels:
+ for panel in self.debug_toolbars[request].panels:
panel.process_response(request, response)
if response['Content-Type'].split(';')[0] in _HTML_TYPES:
- response.content = replace_insensitive(smart_unicode(response.content), u'</body>', smart_unicode(self.debug_toolbar.render_toolbar() + u'</body>'))
+ response.content = replace_insensitive(smart_unicode(response.content), u'</body>', smart_unicode(self.debug_toolbars[request].render_toolbar() + u'</body>'))
+ del self.debug_toolbars[request]
return response