Fixed #21435 -- Improved error message when urlconf is empty.
The new error message now hints that the most likely issue is a circular import. Thanks to trac user elena for the report and to bpeschier for the original patch.
This commit is contained in:
parent
d399731bf2
commit
173aa51997
|
@ -346,11 +346,17 @@ class RegexURLResolver(LocaleRegexProvider):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def url_patterns(self):
|
def url_patterns(self):
|
||||||
|
# urlconf_module might be a valid set of patterns, so we default to it
|
||||||
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
|
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
|
||||||
try:
|
try:
|
||||||
iter(patterns)
|
iter(patterns)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
raise ImproperlyConfigured("The included urlconf %s doesn't have any patterns in it" % self.urlconf_name)
|
msg = (
|
||||||
|
"The included urlconf '{name}' does not appear to have any "
|
||||||
|
"patterns in it. If you see valid patterns in the file then "
|
||||||
|
"the issue is probably caused by a circular import."
|
||||||
|
)
|
||||||
|
raise ImproperlyConfigured(msg.format(name=self.urlconf_name))
|
||||||
return patterns
|
return patterns
|
||||||
|
|
||||||
def _resolve_special(self, view_type):
|
def _resolve_special(self, view_type):
|
||||||
|
|
|
@ -161,8 +161,10 @@ class NoURLPatternsTests(TestCase):
|
||||||
resolver = RegexURLResolver(r'^$', self.urls)
|
resolver = RegexURLResolver(r'^$', self.urls)
|
||||||
|
|
||||||
self.assertRaisesMessage(ImproperlyConfigured,
|
self.assertRaisesMessage(ImproperlyConfigured,
|
||||||
"The included urlconf urlpatterns_reverse.no_urls "
|
"The included urlconf 'urlpatterns_reverse.no_urls' does not "
|
||||||
"doesn't have any patterns in it", getattr, resolver, 'url_patterns')
|
"appear to have any patterns in it. If you see valid patterns in "
|
||||||
|
"the file then the issue is probably caused by a circular import.",
|
||||||
|
getattr, resolver, 'url_patterns')
|
||||||
|
|
||||||
|
|
||||||
class URLPatternReverse(TestCase):
|
class URLPatternReverse(TestCase):
|
||||||
|
|
Loading…
Reference in New Issue