mirror of
https://github.com/django/django.git
synced 2025-10-24 22:26:08 +00:00
WIP: Refs #35281 -- Unified and generalized request error handling.
This commit is contained in:
@@ -342,25 +342,28 @@ Error handling
|
||||
When Django can't find a match for the requested URL, or when an exception is
|
||||
raised, Django invokes an error-handling view.
|
||||
|
||||
The views to use for these cases are specified by four variables. Their
|
||||
default values should suffice for most projects, but further customization is
|
||||
possible by overriding their default values.
|
||||
The default view Django uses for these cases is
|
||||
:class:`django.views.defaults.DefaultErrorView`. This view should suffice for
|
||||
most projects but further customization is possible by defining a custom view
|
||||
to handle errors, either by subclassing this view or by creating your own.
|
||||
|
||||
See the documentation on :ref:`customizing error views
|
||||
See the documentation on :ref:`customizing error view
|
||||
<customizing-error-views>` for the full details.
|
||||
|
||||
Such values can be set in your root URLconf. Setting these variables in any
|
||||
other URLconf will have no effect.
|
||||
.. versionchanged:: 5.2
|
||||
|
||||
Values must be callables, or strings representing the full Python import path
|
||||
to the view that should be called to handle the error condition at hand.
|
||||
In previous versions, the views to use for these cases are specified by four
|
||||
variables.
|
||||
|
||||
The variables are:
|
||||
Values must be callables, or strings representing the full Python import path
|
||||
to the view that should be called to handle the error condition at hand.
|
||||
|
||||
* ``handler400`` -- See :data:`django.conf.urls.handler400`.
|
||||
* ``handler403`` -- See :data:`django.conf.urls.handler403`.
|
||||
* ``handler404`` -- See :data:`django.conf.urls.handler404`.
|
||||
* ``handler500`` -- See :data:`django.conf.urls.handler500`.
|
||||
The variables are:
|
||||
|
||||
* ``handler400``
|
||||
* ``handler403``
|
||||
* ``handler404``
|
||||
* ``handler500``
|
||||
|
||||
.. _including-other-urlconfs:
|
||||
|
||||
|
||||
@@ -138,33 +138,46 @@ template.
|
||||
|
||||
.. _customizing-error-views:
|
||||
|
||||
Customizing error views
|
||||
=======================
|
||||
Customizing error view
|
||||
======================
|
||||
|
||||
The default error views in Django should suffice for most web applications,
|
||||
but can easily be overridden if you need any custom behavior. Specify the
|
||||
handlers as seen below in your URLconf (setting them anywhere else will have no
|
||||
effect).
|
||||
The default error view in Django should suffice for most web applications, but
|
||||
but can easily be overridden if you need any custom behavior.
|
||||
|
||||
The :func:`~django.views.defaults.page_not_found` view is overridden by
|
||||
:data:`~django.conf.urls.handler404`::
|
||||
The default error view can be overridden by setting a view in the
|
||||
``error_handler`` variable in your URLconf (setting it anywhere else will have
|
||||
no effect)::
|
||||
|
||||
handler404 = "mysite.views.my_custom_page_not_found_view"
|
||||
error_handler = views.my_custom_error_view
|
||||
|
||||
The :func:`~django.views.defaults.server_error` view is overridden by
|
||||
:data:`~django.conf.urls.handler500`::
|
||||
or if you have a class-based-view::
|
||||
|
||||
handler500 = "mysite.views.my_custom_error_view"
|
||||
error_handler = views.MyCustomErrorView.as_view()
|
||||
|
||||
The :func:`~django.views.defaults.permission_denied` view is overridden by
|
||||
:data:`~django.conf.urls.handler403`::
|
||||
.. versionchanged:: 5.2
|
||||
|
||||
handler403 = "mysite.views.my_custom_permission_denied_view"
|
||||
On previous versions, there are multiple variables to define to override
|
||||
particular views.
|
||||
|
||||
The :func:`~django.views.defaults.bad_request` view is overridden by
|
||||
:data:`~django.conf.urls.handler400`::
|
||||
The :func:`~django.views.defaults.page_not_found` view is overridden by
|
||||
:data:`~django.conf.urls.handler404`::
|
||||
|
||||
handler400 = "mysite.views.my_custom_bad_request_view"
|
||||
handler404 = "mysite.views.my_custom_page_not_found_view"
|
||||
|
||||
The :func:`~django.views.defaults.server_error` view is overridden by
|
||||
:data:`~django.conf.urls.handler500`::
|
||||
|
||||
handler500 = "mysite.views.my_custom_error_view"
|
||||
|
||||
The :func:`~django.views.defaults.permission_denied` view is overridden by
|
||||
:data:`~django.conf.urls.handler403`::
|
||||
|
||||
handler403 = "mysite.views.my_custom_permission_denied_view"
|
||||
|
||||
The :func:`~django.views.defaults.bad_request` view is overridden by
|
||||
:data:`~django.conf.urls.handler400`::
|
||||
|
||||
handler400 = "mysite.views.my_custom_bad_request_view"
|
||||
|
||||
.. seealso::
|
||||
|
||||
|
||||
Reference in New Issue
Block a user