瀏覽代碼

Fixed #27748 -- Switched HTTP error handlers to reference callables instead of strings.

Dmitry Gladkov 8 年之前
父節點
當前提交
b09faa497e
共有 3 個文件被更改,包括 13 次插入20 次删除
  1. 5 4
      django/conf/urls/__init__.py
  2. 4 16
      docs/ref/urls.txt
  3. 4 0
      docs/releases/2.0.txt

+ 5 - 4
django/conf/urls/__init__.py

@@ -4,13 +4,14 @@ from django.core.exceptions import ImproperlyConfigured
 from django.urls import (
     LocaleRegexURLResolver, RegexURLPattern, RegexURLResolver,
 )
+from django.views import defaults
 
 __all__ = ['handler400', 'handler403', 'handler404', 'handler500', 'include', 'url']
 
-handler400 = 'django.views.defaults.bad_request'
-handler403 = 'django.views.defaults.permission_denied'
-handler404 = 'django.views.defaults.page_not_found'
-handler500 = 'django.views.defaults.server_error'
+handler400 = defaults.bad_request
+handler403 = defaults.permission_denied
+handler404 = defaults.page_not_found
+handler500 = defaults.server_error
 
 
 def include(arg, namespace=None):

+ 4 - 16
docs/ref/urls.txt

@@ -90,13 +90,10 @@ A callable, or a string representing the full Python import path to the view
 that should be called if the HTTP client has sent a request that caused an error
 condition and a response with a status code of 400.
 
-By default, this is ``'django.views.defaults.bad_request'``. If you
+By default, this is :func:`django.views.defaults.bad_request`. If you
 implement a custom view, be sure it returns an
 :class:`~django.http.HttpResponseBadRequest`.
 
-See the documentation about :ref:`the 400 (bad request) view
-<http_bad_request_view>` for more information.
-
 ``handler403``
 ==============
 
@@ -106,13 +103,10 @@ A callable, or a string representing the full Python import path to the view
 that should be called if the user doesn't have the permissions required to
 access a resource.
 
-By default, this is ``'django.views.defaults.permission_denied'``. If you
+By default, this is :func:`django.views.defaults.permission_denied`. If you
 implement a custom view, be sure it returns an
 :class:`~django.http.HttpResponseForbidden`.
 
-See the documentation about :ref:`the 403 (HTTP Forbidden) view
-<http_forbidden_view>` for more information.
-
 ``handler404``
 ==============
 
@@ -121,13 +115,10 @@ See the documentation about :ref:`the 403 (HTTP Forbidden) view
 A callable, or a string representing the full Python import path to the view
 that should be called if none of the URL patterns match.
 
-By default, this is ``'django.views.defaults.page_not_found'``. If you
+By default, this is :func:`django.views.defaults.page_not_found`. If you
 implement a custom view, be sure it returns an
 :class:`~django.http.HttpResponseNotFound`.
 
-See the documentation about :ref:`the 404 (HTTP Not Found) view
-<http_not_found_view>` for more information.
-
 ``handler500``
 ==============
 
@@ -137,9 +128,6 @@ A callable, or a string representing the full Python import path to the view
 that should be called in case of server errors. Server errors happen when you
 have runtime errors in view code.
 
-By default, this is ``'django.views.defaults.server_error'``. If you
+By default, this is :func:`django.views.defaults.server_error`. If you
 implement a custom view, be sure it returns an
 :class:`~django.http.HttpResponseServerError`.
-
-See the documentation about :ref:`the 500 (HTTP Internal Server Error) view
-<http_internal_server_error_view>` for more information.

+ 4 - 0
docs/releases/2.0.txt

@@ -217,6 +217,10 @@ Miscellaneous
   functionality since session authentication is unconditionally enabled in
   Django 1.10.
 
+* The default HTTP error handlers (``handler404``, etc.) are now callables
+  instead of dotted Python path strings. Django favors callable references
+  since they provide better performance and debugging experience.
+
 .. _deprecated-features-2.0:
 
 Features deprecated in 2.0