summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2017-03-03 10:52:20 -0500
committerTim Graham <timograham@gmail.com>2017-03-03 10:52:48 -0500
commit1f20326db0ff2d5d741d0bc8dc4a8b13c97a3652 (patch)
tree4a0fa95fa9ad4ac025ab5eb0774a8c7093d07af1
parent93c8e2d50d636e46ded9c6cfed0b0c4623457b74 (diff)
[1.11.x] Fixed #27887 -- Fixed URLs check crash with namespaced URLs inside non-namespaced URLs.
Backport of b23d264046db1c8f58a174b9be27ee760341ba06 from master
-rw-r--r--django/core/checks/urls.py5
-rw-r--r--tests/check_framework/urls/unique_namespaces.py2
2 files changed, 6 insertions, 1 deletions
diff --git a/django/core/checks/urls.py b/django/core/checks/urls.py
index ca21c62409..e1049167fd 100644
--- a/django/core/checks/urls.py
+++ b/django/core/checks/urls.py
@@ -63,7 +63,10 @@ def _load_all_namespaces(resolver, parents=()):
if getattr(url, 'namespace', None) is not None
]
for pattern in url_patterns:
- current = parents + (getattr(pattern, 'namespace', ()),)
+ namespace = getattr(pattern, 'namespace', None)
+ current = parents
+ if namespace is not None:
+ current += (namespace,)
namespaces.extend(_load_all_namespaces(pattern, current))
return namespaces
diff --git a/tests/check_framework/urls/unique_namespaces.py b/tests/check_framework/urls/unique_namespaces.py
index 10d427eec9..b3f7fd70d0 100644
--- a/tests/check_framework/urls/unique_namespaces.py
+++ b/tests/check_framework/urls/unique_namespaces.py
@@ -15,4 +15,6 @@ urlpatterns = [
# 'nested' is included twice but namespaced by nested-1 and nested-2.
url(r'^app-ns1-2/', include(nested_url_patterns, namespace='nested-1')),
url(r'^app-ns1-3/', include(nested_url_patterns, namespace='nested-2')),
+ # namespaced URLs inside non-namespaced URLs.
+ url(r'^app-ns1-4/', include([url(r'^abc/', include(common_url_patterns))])),
]