Refs #23276 -- Removed passing views as strings to url() per deprecation timeline.

This commit is contained in:
Tim Graham 2015-08-17 11:07:03 -04:00
parent a25d3ce007
commit d79122f40b
2 changed files with 3 additions and 29 deletions

View File

@ -6,9 +6,7 @@ from django.core.urlresolvers import (
LocaleRegexURLResolver, RegexURLPattern, RegexURLResolver, LocaleRegexURLResolver, RegexURLPattern, RegexURLResolver,
) )
from django.utils import six from django.utils import six
from django.utils.deprecation import ( from django.utils.deprecation import RemovedInDjango20Warning
RemovedInDjango20Warning, RemovedInDjango110Warning,
)
__all__ = ['handler400', 'handler403', 'handler404', 'handler500', 'include', 'url'] __all__ = ['handler400', 'handler403', 'handler404', 'handler500', 'include', 'url']
@ -76,21 +74,10 @@ def include(arg, namespace=None, app_name=None):
return (urlconf_module, app_name, namespace) return (urlconf_module, app_name, namespace)
def url(regex, view, kwargs=None, name=None, prefix=''): def url(regex, view, kwargs=None, name=None):
if isinstance(view, (list, tuple)): if isinstance(view, (list, tuple)):
# For include(...) processing. # For include(...) processing.
urlconf_module, app_name, namespace = view urlconf_module, app_name, namespace = view
return RegexURLResolver(regex, urlconf_module, kwargs, app_name=app_name, namespace=namespace) return RegexURLResolver(regex, urlconf_module, kwargs, app_name=app_name, namespace=namespace)
else: else:
if isinstance(view, six.string_types):
warnings.warn(
'Support for string view arguments to url() is deprecated and '
'will be removed in Django 1.10 (got %s). Pass the callable '
'instead.' % view,
RemovedInDjango110Warning, stacklevel=2
)
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) return RegexURLPattern(regex, view, kwargs, name)

View File

@ -26,7 +26,7 @@ Helper function to return a URL pattern for serving files in debug mode::
url() url()
----- -----
.. function:: url(regex, view, kwargs=None, name=None, prefix='') .. function:: url(regex, view, kwargs=None, name=None)
``urlpatterns`` should be a list of ``url()`` instances. For example:: ``urlpatterns`` should be a list of ``url()`` instances. For example::
@ -35,25 +35,12 @@ url()
... ...
] ]
This function takes five arguments, most of which are optional::
url(regex, view, kwargs=None, name=None, prefix='')
The ``kwargs`` parameter allows you to pass additional arguments to the view The ``kwargs`` parameter allows you to pass additional arguments to the view
function or method. See :ref:`views-extra-options` for an example. function or method. See :ref:`views-extra-options` for an example.
See :ref:`Naming URL patterns <naming-url-patterns>` for why the ``name`` See :ref:`Naming URL patterns <naming-url-patterns>` for why the ``name``
parameter is useful. parameter is useful.
.. deprecated:: 1.8
Support for string ``view`` arguments is deprecated and will be removed in
Django 1.10. Pass the callable instead.
The ``prefix`` parameter has the same meaning as the first argument to
``patterns()`` and is only relevant when you're passing a string as the
``view`` parameter.
include() include()
--------- ---------