Browse Source

Fixed #27887 -- Fixed URLs check crash with namespaced URLs inside non-namespaced URLs.

Tim Graham 8 years ago
parent
commit
b23d264046
2 changed files with 6 additions and 1 deletions
  1. 4 1
      django/core/checks/urls.py
  2. 2 0
      tests/check_framework/urls/unique_namespaces.py

+ 4 - 1
django/core/checks/urls.py

@@ -60,7 +60,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
 

+ 2 - 0
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))])),
 ]