app/django/conf/urls/defaults.py
changeset 54 03e267d67478
equal deleted inserted replaced
53:57b4279d8c4e 54:03e267d67478
       
     1 from django.core.urlresolvers import RegexURLPattern, RegexURLResolver
       
     2 from django.core.exceptions import ImproperlyConfigured
       
     3 
       
     4 __all__ = ['handler404', 'handler500', 'include', 'patterns', 'url']
       
     5 
       
     6 handler404 = 'django.views.defaults.page_not_found'
       
     7 handler500 = 'django.views.defaults.server_error'
       
     8 
       
     9 include = lambda urlconf_module: [urlconf_module]
       
    10 
       
    11 def patterns(prefix, *args):
       
    12     pattern_list = []
       
    13     for t in args:
       
    14         if isinstance(t, (list, tuple)):
       
    15             t = url(prefix=prefix, *t)
       
    16         elif isinstance(t, RegexURLPattern):
       
    17             t.add_prefix(prefix)
       
    18         pattern_list.append(t)
       
    19     return pattern_list
       
    20 
       
    21 def url(regex, view, kwargs=None, name=None, prefix=''):
       
    22     if type(view) == list:
       
    23         # For include(...) processing.
       
    24         return RegexURLResolver(regex, view[0], kwargs)
       
    25     else:
       
    26         if isinstance(view, basestring):
       
    27             if not view:
       
    28                 raise ImproperlyConfigured('Empty URL pattern view name not permitted (for pattern %r)' % regex)
       
    29             if prefix:
       
    30                 view = prefix + '.' + view
       
    31         return RegexURLPattern(regex, view, kwargs, name)
       
    32