From eb5aa9a6912e2a848852e4f00113de0c55673f5b Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Thu, 22 Dec 2016 18:08:21 +0000 Subject: [PATCH] Django 1.9: Refined the autonaming url() replacement. - Legacy-Id: 12622 --- ietf/utils/urls.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ietf/utils/urls.py b/ietf/utils/urls.py index 6fb5195b9..66c60ff72 100644 --- a/ietf/utils/urls.py +++ b/ietf/utils/urls.py @@ -2,17 +2,22 @@ import six import debug # pyflakes:ignore +from inspect import isclass 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__) + elif isclass(view) or hasattr(view, '__class__'): + pass + elif callable(view) and hasattr(view, '__name__'): + if str(view.__module__).startswith('django.views.generic'): + pass + else: + name = "%s.%s" % (view.__module__, view.__name__) else: raise NotImplementedError("Auto-named url from view of type %s: %s" % (type(view), view)) if name: