diff options
Diffstat (limited to 'django/urls/conf.py')
| -rw-r--r-- | django/urls/conf.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/django/urls/conf.py b/django/urls/conf.py index 119e95df41..b3937d5512 100644 --- a/django/urls/conf.py +++ b/django/urls/conf.py @@ -55,6 +55,8 @@ def include(arg, namespace=None): def _path(route, view, kwargs=None, name=None, Pattern=None): + from django.views import View + if isinstance(view, (list, tuple)): # For include(...) processing. pattern = Pattern(route, is_endpoint=False) @@ -69,6 +71,12 @@ def _path(route, view, kwargs=None, name=None, Pattern=None): elif callable(view): pattern = Pattern(route, name=name, is_endpoint=True) return URLPattern(pattern, view, kwargs, name) + elif isinstance(view, View): + view_cls_name = view.__class__.__name__ + raise TypeError( + f'view must be a callable, pass {view_cls_name}.as_view(), not ' + f'{view_cls_name}().' + ) else: raise TypeError('view must be a callable or a list/tuple in the case of include().') |
