Fixed #24143 -- Encouraged use of Http404 messages for debugging.
This commit is contained in:
parent
a34fba5e59
commit
726a9550db
|
@ -442,7 +442,7 @@ for a given poll. Here's the view:
|
||||||
try:
|
try:
|
||||||
question = Question.objects.get(pk=question_id)
|
question = Question.objects.get(pk=question_id)
|
||||||
except Question.DoesNotExist:
|
except Question.DoesNotExist:
|
||||||
raise Http404
|
raise Http404("Question does not exist")
|
||||||
return render(request, 'polls/detail.html', {'question': question})
|
return render(request, 'polls/detail.html', {'question': question})
|
||||||
|
|
||||||
The new concept here: The view raises the :exc:`~django.http.Http404` exception
|
The new concept here: The view raises the :exc:`~django.http.Http404` exception
|
||||||
|
|
|
@ -88,7 +88,7 @@ This accomplishes several things quite nicely:
|
||||||
try:
|
try:
|
||||||
a = Article.objects.get(id=article_id, sites__id=get_current_site(request).id)
|
a = Article.objects.get(id=article_id, sites__id=get_current_site(request).id)
|
||||||
except Article.DoesNotExist:
|
except Article.DoesNotExist:
|
||||||
raise Http404
|
raise Http404("Article does not exist on this site")
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
.. _ljworld.com: http://www.ljworld.com/
|
.. _ljworld.com: http://www.ljworld.com/
|
||||||
|
|
|
@ -313,7 +313,7 @@ This example is equivalent to::
|
||||||
try:
|
try:
|
||||||
my_object = MyModel.objects.get(pk=1)
|
my_object = MyModel.objects.get(pk=1)
|
||||||
except MyModel.DoesNotExist:
|
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
|
The most common use case is to pass a :class:`~django.db.models.Model`, as
|
||||||
shown above. However, you can also pass a
|
shown above. However, you can also pass a
|
||||||
|
@ -383,4 +383,4 @@ This example is equivalent to::
|
||||||
def my_view(request):
|
def my_view(request):
|
||||||
my_objects = list(MyModel.objects.filter(published=True))
|
my_objects = list(MyModel.objects.filter(published=True))
|
||||||
if not my_objects:
|
if not my_objects:
|
||||||
raise Http404
|
raise Http404("No MyModel matches the given query.")
|
||||||
|
|
|
@ -119,13 +119,18 @@ Example usage::
|
||||||
try:
|
try:
|
||||||
p = Poll.objects.get(pk=poll_id)
|
p = Poll.objects.get(pk=poll_id)
|
||||||
except Poll.DoesNotExist:
|
except Poll.DoesNotExist:
|
||||||
raise Http404
|
raise Http404("Poll does not exist")
|
||||||
return render_to_response('polls/detail.html', {'poll': p})
|
return render_to_response('polls/detail.html', {'poll': p})
|
||||||
|
|
||||||
In order to use the ``Http404`` exception to its fullest, you should create a
|
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
|
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.
|
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:
|
||||||
|
|
||||||
Customizing error views
|
Customizing error views
|
||||||
|
|
Loading…
Reference in New Issue