diff --git a/django/views/debug.py b/django/views/debug.py index 863651b538..8909c1f64f 100644 --- a/django/views/debug.py +++ b/django/views/debug.py @@ -128,15 +128,21 @@ def technical_404_response(request, exception): Create a technical 404 error response. The exception should be the Http404 exception. """ + urlconf_is_empty = False try: tried = exception.args[0]['tried'] except (IndexError, TypeError): tried = [] + else: + if not tried: + # tried exists but is an empty list. The URLconf must've been empty. + urlconf_is_empty = True t = Template(TECHNICAL_404_TEMPLATE) c = Context({ 'root_urlconf': settings.ROOT_URLCONF, 'urlpatterns': tried, + 'urlconf_is_empty': urlconf_is_empty, 'reason': str(exception), 'request': request, 'request_protocol': os.environ.get("HTTPS") == "on" and "https" or "http", @@ -533,19 +539,23 @@ TECHNICAL_404_TEMPLATE = """
+ {% if urlconf_is_empty %} +
Your URLconf, {{ settings.ROOT_URLCONF }}
, was empty.
Using the URLconf defined in {{ settings.ROOT_URLCONF }}
,
Django tried these URL patterns, in this order:
-
The current URL, {{ request.path }}
, didn't match any of these.
{{ reason|escape }}
+ +The current URL, {{ request.path }}
, didn't match any of these.
{{ reason|escape }}
+ {% endif %} {% endif %}