diff options
| author | David Cramer | 2011-03-28 16:32:01 -0700 |
|---|---|---|
| committer | David Cramer | 2011-03-28 16:32:01 -0700 |
| commit | 0f0c1da0bc38317c7d2e8f70759c347878c747e5 (patch) | |
| tree | dae225da6f1299f7756641061d94e0285c4fbfc6 | |
| parent | 6e2843a9e0d45bf07899192f70c4a10a364d2f41 (diff) | |
| download | django-debug-toolbar-0f0c1da0bc38317c7d2e8f70759c347878c747e5.tar.bz2 | |
Key on thread.get_ident()
| -rw-r--r-- | debug_toolbar/middleware.py | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py index 5a9568d..d48aa02 100644 --- a/debug_toolbar/middleware.py +++ b/debug_toolbar/middleware.py @@ -2,6 +2,7 @@ Debug Toolbar middleware """ import os +import thread from django.conf import settings from django.http import HttpResponseRedirect @@ -74,19 +75,24 @@ class DebugToolbarMiddleware(object): self.override_url = False request.urlconf = 'debug_toolbar.urls' - self.debug_toolbars[request] = DebugToolbar(request) - for panel in self.debug_toolbars[request].panels: + toolbar = DebugToolbar(request) + for panel in toolbar.panels: panel.process_request(request) + self.debug_toolbars[thread.get_ident()] = toolbar def process_view(self, request, view_func, view_args, view_kwargs): - if request in self.debug_toolbars: - for panel in self.debug_toolbars[request].panels: - panel.process_view(request, view_func, view_args, view_kwargs) + toolbar = self.debug_toolbars.get(thread.get_ident()) + if not toolbar: + return + for panel in toolbar.panels: + panel.process_view(request, view_func, view_args, view_kwargs) def process_response(self, request, response): - if request not in self.debug_toolbars: - return response - if self.debug_toolbars[request].config['INTERCEPT_REDIRECTS']: + ident = thread.get_ident() + toolbar = self.debug_toolbars.get(ident) + if not toolbar: + return + if toolbar.config['INTERCEPT_REDIRECTS']: if isinstance(response, HttpResponseRedirect): redirect_to = response.get('Location', None) if redirect_to: @@ -97,14 +103,14 @@ class DebugToolbarMiddleware(object): ) response.cookies = cookies if response.status_code == 200: - for panel in self.debug_toolbars[request].panels: + for panel in toolbar.panels: panel.process_response(request, response) if response['Content-Type'].split(';')[0] in _HTML_TYPES: response.content = replace_insensitive( smart_unicode(response.content), self.tag, - smart_unicode(self.debug_toolbars[request].render_toolbar() + self.tag)) + smart_unicode(toolbar.render_toolbar() + self.tag)) if response.get('Content-Length', None): response['Content-Length'] = len(response.content) - del self.debug_toolbars[request] + del self.debug_toolbars[ident] return response |
