diff options
| author | Rob Hudson | 2010-04-20 21:42:22 -0700 |
|---|---|---|
| committer | Rob Hudson | 2010-06-02 07:55:57 -0700 |
| commit | 7fc06d9acddd41fd5e8b84d52641197abe7c8110 (patch) | |
| tree | ac308fe8d0017c640a2881beacd81911065a2251 /debug_toolbar/toolbar | |
| parent | ee1811238e91ae0ad33413b0d40d2f8482101951 (diff) | |
| download | django-debug-toolbar-toolbar-refactor.tar.bz2 | |
Instantiate only one toolbar object on load.toolbar-refactor
Start of work on having one toolbar object and its panels handle multiple
requests, getting rid of the need to instantiate a toolbar and all panels per
request. This will require much more work in panels to make sure everything is
thread-safe.
Diffstat (limited to 'debug_toolbar/toolbar')
| -rw-r--r-- | debug_toolbar/toolbar/loader.py | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/debug_toolbar/toolbar/loader.py b/debug_toolbar/toolbar/loader.py index 4b53d2f..9b468c5 100644 --- a/debug_toolbar/toolbar/loader.py +++ b/debug_toolbar/toolbar/loader.py @@ -6,20 +6,14 @@ from django.template.loader import render_to_string class DebugToolbar(object): - def __init__(self, request): - self.request = request - self.panels = [] - base_url = self.request.META.get('SCRIPT_NAME', '') - self.config = { - 'INTERCEPT_REDIRECTS': True, - 'MEDIA_URL': u'%s/__debug__/m/' % base_url - } + config = {} + panels = [] + requests = {} + template_context = {} + + def __init__(self): # Check if settings has a DEBUG_TOOLBAR_CONFIG and updated config self.config.update(getattr(settings, 'DEBUG_TOOLBAR_CONFIG', {})) - self.template_context = { - 'BASE_URL': base_url, # for backwards compatibility - 'DEBUG_TOOLBAR_MEDIA_URL': self.config.get('MEDIA_URL'), - } # Override this tuple by copying to settings.py as `DEBUG_TOOLBAR_PANELS` self.default_panels = ( 'debug_toolbar.panels.version.VersionDebugPanel', @@ -35,6 +29,18 @@ class DebugToolbar(object): ) self.load_panels() + def process_request(self, request): + self.requests[request] = [] + base_url = request.META.get('SCRIPT_NAME', '') + self.config.update({ + 'INTERCEPT_REDIRECTS': True, + 'MEDIA_URL': u'%s/__debug__/m/' % (base_url,) + }) + self.template_context.update({ + 'BASE_URL': base_url, # for backwards compatibility + 'DEBUG_TOOLBAR_MEDIA_URL': self.config.get('MEDIA_URL'), + }) + def load_panels(self): """ Populate debug panels |
