diff options
Diffstat (limited to 'debug_toolbar/toolbar.py')
| -rw-r--r-- | debug_toolbar/toolbar.py | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/debug_toolbar/toolbar.py b/debug_toolbar/toolbar.py index 36c301a..ec840dd 100644 --- a/debug_toolbar/toolbar.py +++ b/debug_toolbar/toolbar.py @@ -6,11 +6,16 @@ from __future__ import absolute_import, unicode_literals import uuid +from django.conf import settings from django.conf.urls import patterns, url from django.core.exceptions import ImproperlyConfigured +from django.template import TemplateSyntaxError from django.template.loader import render_to_string -from django.utils.datastructures import SortedDict from django.utils.importlib import import_module +try: + from collections import OrderedDict +except ImportError: + from django.utils.datastructures import SortedDict as OrderedDict from debug_toolbar import settings as dt_settings @@ -20,7 +25,7 @@ class DebugToolbar(object): def __init__(self, request): self.request = request self.config = dt_settings.CONFIG.copy() - self._panels = SortedDict() + self._panels = OrderedDict() for panel_class in self.get_panel_classes(): panel_instance = panel_class(self) self._panels[panel_instance.panel_id] = panel_instance @@ -57,11 +62,21 @@ class DebugToolbar(object): """ if not self.should_render_panels(): self.store() - return render_to_string('debug_toolbar/base.html', {'toolbar': self}) + try: + context = {'toolbar': self} + return render_to_string('debug_toolbar/base.html', context) + except TemplateSyntaxError: + if 'django.contrib.staticfiles' not in settings.INSTALLED_APPS: + raise ImproperlyConfigured( + "The debug toolbar requires the staticfiles contrib app. " + "Add 'django.contrib.staticfiles' to INSTALLED_APPS and " + "define STATIC_URL in your settings.") + else: + raise # Handle storing toolbars in memory and fetching them later on - _store = SortedDict() + _store = OrderedDict() def should_render_panels(self): render_panels = self.config['RENDER_PANELS'] |
