Refactored django.core.urlresolvers a tiny bit

git-svn-id: http://code.djangoproject.com/svn/django/trunk@479 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2005-08-10 22:20:18 +00:00
parent fcfb8edc15
commit e67882721d
1 changed files with 7 additions and 9 deletions

View File

@ -47,7 +47,7 @@ class RegexURLPattern:
except AttributeError, e: except AttributeError, e:
raise ViewDoesNotExist, "Tried %s in module %s. Error was: %s" % (func_name, mod_name, str(e)) raise ViewDoesNotExist, "Tried %s in module %s. Error was: %s" % (func_name, mod_name, str(e))
class RegexURLResolver: class RegexURLResolver(object):
def __init__(self, regex, urlconf_name): def __init__(self, regex, urlconf_name):
# regex is a string representing a regular expression. # regex is a string representing a regular expression.
# urlconf_name is a string representing the module containing urlconfs. # urlconf_name is a string representing the module containing urlconfs.
@ -59,7 +59,7 @@ class RegexURLResolver:
match = self.regex.search(path) match = self.regex.search(path)
if match: if match:
new_path = path[match.end():] new_path = path[match.end():]
for pattern in self.url_patterns: for pattern in self.urlconf_module.urlpatterns:
try: try:
sub_match = pattern.resolve(new_path) sub_match = pattern.resolve(new_path)
except Resolver404, e: except Resolver404, e:
@ -71,15 +71,13 @@ class RegexURLResolver:
raise Resolver404, {'tried': tried, 'path': new_path} raise Resolver404, {'tried': tried, 'path': new_path}
def _get_urlconf_module(self): def _get_urlconf_module(self):
self.urlconf_module = __import__(self.urlconf_name, '', '', ['']) try:
return self.urlconf_module return self._urlconf_module
except AttributeError:
self._urlconf_module = __import__(self.urlconf_name, '', '', [''])
return self._urlconf_module
urlconf_module = property(_get_urlconf_module) urlconf_module = property(_get_urlconf_module)
def _get_url_patterns(self):
self.url_patterns = self.urlconf_module.urlpatterns
return self.url_patterns
url_patterns = property(_get_url_patterns)
def _resolve_special(self, view_type): def _resolve_special(self, view_type):
callback = getattr(self.urlconf_module, 'handler%s' % view_type) callback = getattr(self.urlconf_module, 'handler%s' % view_type)
mod_name, func_name = get_mod_func(callback) mod_name, func_name = get_mod_func(callback)