aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'debug_toolbar/models.py')
-rw-r--r--debug_toolbar/models.py45
1 files changed, 30 insertions, 15 deletions
diff --git a/debug_toolbar/models.py b/debug_toolbar/models.py
index 772b52b..fc78874 100644
--- a/debug_toolbar/models.py
+++ b/debug_toolbar/models.py
@@ -20,6 +20,11 @@ def is_toolbar_middleware(middleware_path):
return issubclass(middleware_cls, DebugToolbarMiddleware)
+def is_toolbar_middleware_installed():
+ return any(is_toolbar_middleware(middleware)
+ for middleware in settings.MIDDLEWARE_CLASSES)
+
+
def prepend_to_setting(setting_name, value):
"""Insert value at the beginning of a list or tuple setting."""
values = getattr(settings, setting_name)
@@ -28,23 +33,33 @@ def prepend_to_setting(setting_name, value):
setattr(settings, setting_name, value + values)
-if not settings.INTERNAL_IPS:
- prepend_to_setting('INTERNAL_IPS', '127.0.0.1')
- prepend_to_setting('INTERNAL_IPS', '::1')
+def patch_internal_ips():
+ if not settings.INTERNAL_IPS:
+ prepend_to_setting('INTERNAL_IPS', '127.0.0.1')
+ prepend_to_setting('INTERNAL_IPS', '::1')
+
+def patch_middleware_classes():
+ if not is_toolbar_middleware_installed():
+ prepend_to_setting('MIDDLEWARE_CLASSES',
+ 'debug_toolbar.middleware.DebugToolbarMiddleware')
+
+
+def patch_root_urlconf():
+ try:
+ reverse('djdt:render_panel')
+ except NoReverseMatch:
+ urlconf_module = import_module(settings.ROOT_URLCONF)
+ urlconf_module.urlpatterns += patterns('', # noqa
+ url(r'^__debug__/', include('debug_toolbar.urls', namespace='djdt', app_name='djdt')),
+ )
-if not any(is_toolbar_middleware(middleware)
- for middleware in settings.MIDDLEWARE_CLASSES):
- prepend_to_setting('MIDDLEWARE_CLASSES',
- 'debug_toolbar.middleware.DebugToolbarMiddleware')
-try:
- reverse('djdt:render_panel')
-except NoReverseMatch:
- urlconf_module = import_module(settings.ROOT_URLCONF)
- urlconf_module.urlpatterns += patterns('',
- url(r'^__debug__/', include('debug_toolbar.urls', namespace='djdt', app_name='djdt')),
- )
+if settings.DEBUG:
+ patch_internal_ips()
+ patch_middleware_classes()
+ patch_root_urlconf()
-load_panel_classes()
+if is_toolbar_middleware_installed():
+ load_panel_classes()