Fixed #16079: Clarified (for real this time) how handler404 and handler500 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
This commit is contained in:
parent
a829f85b94
commit
94524fbfef
|
@ -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::
|
||||||
|
@ -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
|
||||||
=======================
|
=======================
|
||||||
|
|
|
@ -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
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
@ -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
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
@ -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
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue