aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/middleware.py
diff options
context:
space:
mode:
authorDavid Cramer2011-05-26 02:46:11 -0700
committerDavid Cramer2011-05-26 02:46:11 -0700
commit3719bbec31a085f9a91e58cdc1ebd2771f3c8ea5 (patch)
treeca7105017c8e3003cb99f4ca364bb36076f3c083 /debug_toolbar/middleware.py
parent2d3b5bab07cf441dbbf1710418d2d510089f0243 (diff)
downloaddjango-debug-toolbar-3719bbec31a085f9a91e58cdc1ebd2771f3c8ea5.tar.bz2
Correctly handle modules as request.urlconf -- Thanks to Germán M. Bravo (fixes #166)
Diffstat (limited to 'debug_toolbar/middleware.py')
-rw-r--r--debug_toolbar/middleware.py32
1 files changed, 16 insertions, 16 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py
index 7cdf7b0..b1ab737 100644
--- a/debug_toolbar/middleware.py
+++ b/debug_toolbar/middleware.py
@@ -1,13 +1,14 @@
"""
Debug Toolbar middleware
"""
+import imp
import thread
from django.conf import settings
+from django.conf.urls.defaults import include, patterns
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.utils.encoding import smart_unicode
-from django.conf.urls.defaults import include, patterns
import debug_toolbar.urls
from debug_toolbar.toolbar.loader import DebugToolbar
@@ -71,26 +72,25 @@ class DebugToolbarMiddleware(object):
__traceback_hide__ = True
if self.show_toolbar(request):
- urlconf_name = getattr(request, 'urlconf', settings.ROOT_URLCONF)
- if urlconf_name not in self._urlconfs:
-
- import imp
+ urlconf = getattr(request, 'urlconf', settings.ROOT_URLCONF)
+ if isinstance(urlconf, basestring):
+ urlconf = __import__(getattr(request, 'urlconf', settings.ROOT_URLCONF), {}, {}, ['*'])
- original_urlconf = __import__(getattr(request, 'urlconf', settings.ROOT_URLCONF), {}, {}, ['*'])
+ if urlconf not in self._urlconfs:
new_urlconf = imp.new_module('urlconf')
new_urlconf.urlpatterns = debug_toolbar.urls.urlpatterns + \
patterns('',
- ('', include(original_urlconf)),
- )
+ ('', include(urlconf)),
+ )
- if hasattr(original_urlconf, 'handler404'):
- new_urlconf.handler404 = original_urlconf.handler404
- if hasattr(original_urlconf, 'handler500'):
- new_urlconf.handler500 = original_urlconf.handler500
-
- self._urlconfs[urlconf_name] = new_urlconf
-
- request.urlconf = self._urlconfs[urlconf_name]
+ if hasattr(urlconf, 'handler404'):
+ new_urlconf.handler404 = urlconf.handler404
+ if hasattr(urlconf, 'handler500'):
+ new_urlconf.handler500 = urlconf.handler500
+
+ self._urlconfs[urlconf] = new_urlconf
+
+ request.urlconf = self._urlconfs[urlconf]
toolbar = DebugToolbar(request)
for panel in toolbar.panels: