Django 1.9: Added an alternative implementation of urls() which derives an url pattern name from the callable, in order to maintain DRY for url patterns.

- Legacy-Id: 12617
This commit is contained in:
Henrik Levkowetz 2016-12-22 17:20:29 +00:00
parent 3944ab95cc
commit bfc44dea82

21
ietf/utils/urls.py Normal file
View file

@ -0,0 +1,21 @@
# Copyright The IETF Trust 2016, All Rights Reserved
import six
import debug # pyflakes:ignore
from django.conf.urls import url as django_url
#@debug.trace
def url(regex, view, kwargs=None, name=None, prefix=''):
if isinstance(view, (list, tuple)):
pass # use the name passed in
elif isinstance(view, six.string_types):
name = view
elif callable(view):
name = "%s.%s" % (view.__module__, view.__name__)
else:
raise NotImplementedError("Auto-named url from view of type %s: %s" % (type(view), view))
if name:
debug.show('name')
return django_url(regex, view, kwargs=kwargs, name=name, prefix=prefix)