|
@@ -72,13 +72,8 @@ class BaseHandler(object):
|
|
|
try:
|
|
|
# Reset the urlconf for this thread.
|
|
|
urlresolvers.set_urlconf(None)
|
|
|
-
|
|
|
- # Get urlconf from request object, if available. Otherwise use default.
|
|
|
- urlconf = getattr(request, "urlconf", settings.ROOT_URLCONF)
|
|
|
-
|
|
|
- # Set the urlconf for this thread to the one specified above.
|
|
|
- urlresolvers.set_urlconf(urlconf)
|
|
|
- resolver = urlresolvers.RegexURLResolver(r'^/', urlconf)
|
|
|
+ # Obtain a default resolver. It's needed early for handling 404's.
|
|
|
+ resolver = urlresolvers.RegexURLResolver(r'^/', None)
|
|
|
|
|
|
# Apply request middleware
|
|
|
for middleware_method in self._request_middleware:
|
|
@@ -86,6 +81,13 @@ class BaseHandler(object):
|
|
|
if response:
|
|
|
return response
|
|
|
|
|
|
+ # Get urlconf from request object, if available. Otherwise use default.
|
|
|
+ urlconf = getattr(request, "urlconf", settings.ROOT_URLCONF)
|
|
|
+ # Set the urlconf for this thread to the one specified above.
|
|
|
+ urlresolvers.set_urlconf(urlconf)
|
|
|
+ # Reset the resolver with a possibly new urlconf
|
|
|
+ resolver = urlresolvers.RegexURLResolver(r'^/', urlconf)
|
|
|
+
|
|
|
callback, callback_args, callback_kwargs = resolver.resolve(
|
|
|
request.path_info)
|
|
|
|