Debug 400 page now displays special error message if your URLconf is empty.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@1552 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2005-12-06 05:04:56 +00:00
parent 54618dc0fe
commit 85c369001b
1 changed files with 21 additions and 11 deletions

View File

@ -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,6 +539,9 @@ TECHNICAL_404_TEMPLATE = """
</table>
</div>
<div id="info">
{% if urlconf_is_empty %}
<p>Your URLconf, <code>{{ settings.ROOT_URLCONF }}</code>, was empty.</p>
{% else %}
{% if urlpatterns %}
<p>
Using the URLconf defined in <code>{{ settings.ROOT_URLCONF }}</code>,
@ -547,6 +556,7 @@ TECHNICAL_404_TEMPLATE = """
{% else %}
<p>{{ reason|escape }}</p>
{% endif %}
{% endif %}
</div>
<div id="explanation">