Django

Code

Changeset 5520

Show
Ignore:
Timestamp:
06/24/07 04:38:30 (1 year ago)
Author:
mtredinnick
Message:

Fixed #4673 -- Fixed error reporting bug from [5516]. Also changed the timing
for populating the reverse cache, since that may have been happening too early.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/core/urlresolvers.py

    r5517 r5520  
    157157            self._callback = get_callable(self._callback_str) 
    158158        except ImportError, e: 
     159            mod_name, _ = get_mod_func(self._callback_str) 
    159160            raise ViewDoesNotExist, "Could not import %s. Error was: %s" % (mod_name, str(e)) 
    160161        except AttributeError, e: 
     162            mod_name, func_name = get_mod_func(self._callback_str) 
    161163            raise ViewDoesNotExist, "Tried %s in module %s. Error was: %s" % (func_name, mod_name, str(e)) 
    162164        return self._callback 
     
    184186        self.callback = None 
    185187        self.default_kwargs = default_kwargs or {} 
    186         self.reverse_dict = {} 
    187  
    188         for pattern in reversed(self.urlconf_module.urlpatterns): 
    189             if isinstance(pattern, RegexURLResolver): 
    190                 for key, value in pattern.reverse_dict.iteritems(): 
    191                     self.reverse_dict[key] = (pattern,) + value 
    192             else: 
    193                 self.reverse_dict[pattern.callback] = (pattern,) 
    194                 self.reverse_dict[pattern.name] = (pattern,) 
     188        self._reverse_dict = {} 
     189 
     190    def _get_reverse_dict(self): 
     191        if not self._reverse_dict: 
     192            for pattern in reversed(self.urlconf_module.urlpatterns): 
     193                if isinstance(pattern, RegexURLResolver): 
     194                    for key, value in pattern.reverse_dict.iteritems(): 
     195                        self._reverse_dict[key] = (pattern,) + value 
     196                else: 
     197                    self._reverse_dict[pattern.callback] = (pattern,) 
     198                    self._reverse_dict[pattern.name] = (pattern,) 
     199        return self._reverse_dict 
     200    reverse_dict = property(_get_reverse_dict) 
    195201 
    196202    def resolve(self, path):