From 31ee1207877578ad683c1d4f3aed47fc6dc7637e Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 1 Aug 2013 18:07:59 -0400 Subject: [PATCH] Fixed #20667 - Removed discussion of DEBUG from tutorial. Forward-port of 3493f18d78 from master. --- docs/howto/deployment/checklist.txt | 15 ++++++++++ docs/intro/tutorial03.txt | 45 ----------------------------- docs/intro/whatsnext.txt | 5 ++++ docs/topics/http/views.txt | 14 ++++----- 4 files changed, 27 insertions(+), 52 deletions(-) diff --git a/docs/howto/deployment/checklist.txt b/docs/howto/deployment/checklist.txt index 7d382401a0..36c442fbe2 100644 --- a/docs/howto/deployment/checklist.txt +++ b/docs/howto/deployment/checklist.txt @@ -206,6 +206,21 @@ See :doc:`/howto/error-reporting` for details on error reporting by email. .. _Sentry: http://sentry.readthedocs.org/en/latest/ +Customize the default error views +--------------------------------- + +Django includes default views and templates for several HTTP error codes. You +may want to override the default templates by creating the following templates +in your root template directory: ``404.html``, ``500.html``, ``403.html``, and +``400.html``. The default views should suffice for 99% of Web applications, but +if you desire to customize them, see these instructions which also contain +details about the default templates: + +* :ref:`http_not_found_view` +* :ref:`http_internal_server_error_view` +* :ref:`http_forbidden_view` +* :ref:`http_bad_request_view` + Miscellaneous ============= diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt index f0c39e2c93..1165fbf18a 100644 --- a/docs/intro/tutorial03.txt +++ b/docs/intro/tutorial03.txt @@ -454,51 +454,6 @@ just as :func:`~django.shortcuts.get_object_or_404` -- except using :meth:`~django.db.models.query.QuerySet.get`. It raises :exc:`~django.http.Http404` if the list is empty. -Write a 404 (page not found) view -================================= - -When you raise :exc:`~django.http.Http404` from within a view, Django -will load a special view devoted to handling 404 errors. It finds it -by looking for the variable ``handler404`` in your root URLconf (and -only in your root URLconf; setting ``handler404`` anywhere else will -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. If you don't set -``handler404``, the built-in view :func:`django.views.defaults.page_not_found` -is used by default. Optionally, you can create a ``404.html`` template -in the root of your template directory. The default 404 view will then use that -template for all 404 errors when :setting:`DEBUG` is set to ``False`` (in your -settings module). If you do create the template, add at least some dummy -content like "Page not found". - -.. warning:: - - If :setting:`DEBUG` is set to ``False``, all responses will be - "Bad Request (400)" unless you specify the proper :setting:`ALLOWED_HOSTS` - as well (something like ``['localhost', '127.0.0.1']`` for - local development). - -A couple more things to note about 404 views: - -* If :setting:`DEBUG` is set to ``True`` (in your settings module) then your - 404 view will never be used (and thus the ``404.html`` template will never - be rendered) because the traceback will be displayed instead. - -* The 404 view is also called if Django doesn't find a match after checking - every regular expression in the URLconf. - -Write a 500 (server error) view -=============================== - -Similarly, your root URLconf may define a ``handler500``, which points -to a view to call in case of server errors. Server errors happen when -you have runtime errors in view code. - -Likewise, you should create a ``500.html`` template at the root of your -template directory and add some content like "Something went wrong". - Use the template system ======================= diff --git a/docs/intro/whatsnext.txt b/docs/intro/whatsnext.txt index a677bc9efd..638d219afe 100644 --- a/docs/intro/whatsnext.txt +++ b/docs/intro/whatsnext.txt @@ -66,6 +66,11 @@ different needs: where you'll turn to find the details of a particular function or whathaveyou. +* If you are interested in deploying a project for public use, our docs have + :doc:`several guides` for various deployment + setups as well as a :doc:`deployment checklist` + for some things you'll need to think about. + * Finally, there's some "specialized" documentation not usually relevant to most developers. This includes the :doc:`release notes ` and :doc:`internals documentation ` for those who want to add diff --git a/docs/topics/http/views.txt b/docs/topics/http/views.txt index 5c27c9c958..ebe5302ef8 100644 --- a/docs/topics/http/views.txt +++ b/docs/topics/http/views.txt @@ -140,18 +140,18 @@ The 404 (page not found) view .. function:: django.views.defaults.page_not_found(request, template_name='404.html') -When you raise an ``Http404`` exception, Django loads a special view devoted -to handling 404 errors. By default, it's the view -``django.views.defaults.page_not_found``, which either produces a very simple -"Not Found" message or loads and renders the template ``404.html`` if you -created it in your root template directory. +When you raise :exc:`~django.http.Http404` from within a view, Django loads a +special view devoted to handling 404 errors. By default, it's the view +:func:`django.views.defaults.page_not_found`, which either produces a very +simple "Not Found" message or loads and renders the template ``404.html`` if +you created it in your root template directory. The default 404 view will pass one variable to the template: ``request_path``, which is the URL that resulted in the error. The ``page_not_found`` view should suffice for 99% of Web applications, but if -you want to override it, you can specify ``handler404`` in your URLconf, like -so:: +you want to override it, you can specify ``handler404`` in your root URLconf +(setting ``handler404`` anywhere else will have no effect), like so:: handler404 = 'mysite.views.my_custom_404_view'