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'] | 
