Fixed #24143 -- Encouraged use of Http404 messages for debugging.

This commit is contained in:
Keryn Knight 2015-01-13 08:02:17 +00:00 committed by Tim Graham
parent a34fba5e59
commit 726a9550db
4 changed files with 10 additions and 5 deletions

View File

@ -442,7 +442,7 @@ for a given poll. Here's the view:
try:
question = Question.objects.get(pk=question_id)
except Question.DoesNotExist:
raise Http404
raise Http404("Question does not exist")
return render(request, 'polls/detail.html', {'question': question})
The new concept here: The view raises the :exc:`~django.http.Http404` exception

View File

@ -88,7 +88,7 @@ This accomplishes several things quite nicely:
try:
a = Article.objects.get(id=article_id, sites__id=get_current_site(request).id)
except Article.DoesNotExist:
raise Http404
raise Http404("Article does not exist on this site")
# ...
.. _ljworld.com: http://www.ljworld.com/

View File

@ -313,7 +313,7 @@ This example is equivalent to::
try:
my_object = MyModel.objects.get(pk=1)
except MyModel.DoesNotExist:
raise Http404
raise Http404("No MyModel matches the given query.")
The most common use case is to pass a :class:`~django.db.models.Model`, as
shown above. However, you can also pass a
@ -383,4 +383,4 @@ This example is equivalent to::
def my_view(request):
my_objects = list(MyModel.objects.filter(published=True))
if not my_objects:
raise Http404
raise Http404("No MyModel matches the given query.")

View File

@ -119,13 +119,18 @@ Example usage::
try:
p = Poll.objects.get(pk=poll_id)
except Poll.DoesNotExist:
raise Http404
raise Http404("Poll does not exist")
return render_to_response('polls/detail.html', {'poll': p})
In order to use the ``Http404`` exception to its fullest, you should create a
template that is displayed when a 404 error is raised. This template should be
called ``404.html`` and located in the top level of your template tree.
If you provide a message when raising an ``Http404`` exception, it will appear
in the standard 404 template displayed when :setting:`DEBUG` is ``True``. Use
these messages for debugging purposes; they generally aren't suitable for use
in a production 404 template.
.. _customizing-error-views:
Customizing error views