summaryrefslogtreecommitdiff
path: root/django/conf/urls/defaults.py
diff options
context:
space:
mode:
authorChristopher Long <indirecthit@gmail.com>2007-06-17 22:18:54 +0000
committerChristopher Long <indirecthit@gmail.com>2007-06-17 22:18:54 +0000
commitae22b6d403dcf25098c77f0dfcf59ae58b186461 (patch)
treec37fc631e99a7e4d909d6b6d236f495003731ea7 /django/conf/urls/defaults.py
parent0cf7bc439129c66df8d64601e885f83b256b4f25 (diff)
per-object-permissions: Merged to trunk [5486] NOTE: Not fully tested, will be working on this over the next few weeks.
git-svn-id: http://code.djangoproject.com/svn/django/branches/per-object-permissions@5488 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/conf/urls/defaults.py')
-rw-r--r--django/conf/urls/defaults.py31
1 files changed, 22 insertions, 9 deletions
diff --git a/django/conf/urls/defaults.py b/django/conf/urls/defaults.py
index 17fe603d96..26cdd3e1ff 100644
--- a/django/conf/urls/defaults.py
+++ b/django/conf/urls/defaults.py
@@ -1,19 +1,32 @@
from django.core.urlresolvers import RegexURLPattern, RegexURLResolver
+from django.core.exceptions import ImproperlyConfigured
-__all__ = ['handler404', 'handler500', 'include', 'patterns']
+__all__ = ['handler404', 'handler500', 'include', 'patterns', 'url']
handler404 = 'django.views.defaults.page_not_found'
handler500 = 'django.views.defaults.server_error'
include = lambda urlconf_module: [urlconf_module]
-def patterns(prefix, *tuples):
+def patterns(prefix, *args):
pattern_list = []
- for t in tuples:
- regex, view_or_include = t[:2]
- default_kwargs = t[2:]
- if type(view_or_include) == list:
- pattern_list.append(RegexURLResolver(regex, view_or_include[0], *default_kwargs))
- else:
- pattern_list.append(RegexURLPattern(regex, prefix and (prefix + '.' + view_or_include) or view_or_include, *default_kwargs))
+ for t in args:
+ if isinstance(t, (list, tuple)):
+ t = url(prefix=prefix, *t)
+ elif isinstance(t, RegexURLPattern):
+ t.add_prefix(prefix)
+ pattern_list.append(t)
return pattern_list
+
+def url(regex, view, kwargs=None, name=None, prefix=''):
+ if type(view) == list:
+ # For include(...) processing.
+ return RegexURLResolver(regex, view[0], kwargs)
+ else:
+ if isinstance(view, basestring):
+ if not view:
+ raise ImproperlyConfigured('Empty URL pattern view name not permitted (for pattern %r)' % regex)
+ if prefix:
+ view = prefix + '.' + view
+ return RegexURLPattern(regex, view, kwargs, name)
+