Skip to content

Commit

Permalink
Fixed #16079: Clarified (for real this time) how handler404 and handl…
Browse files Browse the repository at this point in the history
…er500 work, and that they only work in a root URLconf.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16804 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
ubernostrum committed Sep 11, 2011
1 parent a829f85 commit 94524fb
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 21 deletions.
18 changes: 10 additions & 8 deletions docs/intro/tutorial03.txt
Expand Up @@ -356,11 +356,13 @@ the list is empty.
Write a 404 (page not found) view Write a 404 (page not found) view
================================= =================================


When you raise :exc:`~django.http.Http404` from within a view, Django will load When you raise :exc:`~django.http.Http404` from within a view, Django
a special view devoted to handling 404 errors. It finds it by looking for the will load a special view devoted to handling 404 errors. It finds it
variable ``handler404``, which is a string in Python dotted syntax -- the same by looking for the variable ``handler404`` in your root URLconf (and
format the normal URLconf callbacks use. A 404 view itself has nothing special: only in your root URLconf; setting ``handler404`` anywhere else will
It's just a normal view. have no effect), which is a string in Python dotted syntax -- the same
format the normal URLconf callbacks use. A 404 view itself has nothing
special: It's just a normal view.


You normally won't have to bother with writing 404 views. By default, URLconfs You normally won't have to bother with writing 404 views. By default, URLconfs
have the following line up top:: have the following line up top::
Expand Down Expand Up @@ -392,9 +394,9 @@ Four more things to note about 404 views:
Write a 500 (server error) view Write a 500 (server error) view
=============================== ===============================


Similarly, URLconfs may define a ``handler500``, which points to a view to call Similarly, your root URLconf may define a ``handler500``, which points
in case of server errors. Server errors happen when you have runtime errors in to a view to call in case of server errors. Server errors happen when
view code. you have runtime errors in view code.


Use the template system Use the template system
======================= =======================
Expand Down
42 changes: 29 additions & 13 deletions docs/topics/http/urls.txt
Expand Up @@ -60,6 +60,10 @@ algorithm the system follows to determine which Python code to execute:
:class:`~django.http.HttpRequest` as its first argument and any values :class:`~django.http.HttpRequest` as its first argument and any values
captured in the regex as remaining arguments. captured in the regex as remaining arguments.


5. If no regex matches, or if an exception is raised during any
point in this process, Django invokes an appropriate
error-handling view. See `Error handling`_ below.

Example Example
======= =======


Expand Down Expand Up @@ -252,6 +256,31 @@ The ``prefix`` parameter has the same meaning as the first argument to
``patterns()`` and is only relevant when you're passing a string as the ``patterns()`` and is only relevant when you're passing a string as the
``view`` parameter. ``view`` parameter.


include
-------

.. function:: include(<module or pattern_list>)

A function that takes a full Python import path to another URLconf module that
should be "included" in this place.

:func:`include` also accepts as an argument an iterable that returns URL
patterns.

See `Including other URLconfs`_ below.

Error handling
==============

When Django can't find a regex matching the requested URL, or when an
exception is raised, Django will invoke an error-handling view. The
views to use for these cases are specified by two variables which can
be set in your root URLconf. Setting these variables in any other
URLconf will have no effect.

See the documentation on :ref:`customizing error views
<customizing-error-views>` for more details.

handler404 handler404
---------- ----------


Expand Down Expand Up @@ -281,19 +310,6 @@ value should suffice.
.. versionchanged:: 1.2 .. versionchanged:: 1.2
Previous versions of Django only accepted strings representing import paths. Previous versions of Django only accepted strings representing import paths.


include
-------

.. function:: include(<module or pattern_list>)

A function that takes a full Python import path to another URLconf module that
should be "included" in this place.

:func:`include` also accepts as an argument an iterable that returns URL
patterns.

See `Including other URLconfs`_ below.

Notes on capturing text in URLs Notes on capturing text in URLs
=============================== ===============================


Expand Down
2 changes: 2 additions & 0 deletions docs/topics/http/views.txt
Expand Up @@ -122,6 +122,8 @@ 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.


.. _customizing-error-views:

Customizing error views Customizing error views
======================= =======================


Expand Down

0 comments on commit 94524fb

Please sign in to comment.