diff options
Diffstat (limited to 'debug_toolbar/toolbar.py')
| -rw-r--r-- | debug_toolbar/toolbar.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/debug_toolbar/toolbar.py b/debug_toolbar/toolbar.py index 32dc1b7..bf632cd 100644 --- a/debug_toolbar/toolbar.py +++ b/debug_toolbar/toolbar.py @@ -5,6 +5,7 @@ The main DebugToolbar class that loads and renders the Toolbar. from __future__ import unicode_literals from django.conf import settings +from django.conf.urls import patterns, url from django.core.exceptions import ImproperlyConfigured from django.template.loader import render_to_string from django.utils.datastructures import SortedDict @@ -107,3 +108,19 @@ class DebugToolbar(object): panel_classes.append(panel_class) cls._panel_classes = panel_classes return cls._panel_classes + + _urlpatterns = None + + @classmethod + def get_urls(cls): + if cls._urlpatterns is None: + # Load URLs in a temporary variable for thread safety. + # Global URLs + urlpatterns = patterns('debug_toolbar.views', # noqa + url(r'^render_panel/$', 'render_panel', name='render_panel'), + ) + # Per-panel URLs + for panel_class in cls.get_panel_classes(): + urlpatterns += panel_class.get_urls() + cls._urlpatterns = urlpatterns + return cls._urlpatterns |
