summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Zapke-GrĂ¼ndemann <markus@keimlink.de>2012-11-03 17:04:53 +0100
committerFlorian Apolloner <florian@apolloner.eu>2012-11-03 17:19:26 +0100
commit4b2fb7efea5379d6d91da4513982debeeb49504b (patch)
tree6bab75f92432308e4132c2932fe976f252f30d55
parentb99707bdedbcbf832bd88eaefd488c841110a222 (diff)
[1.5.X] Fixed #19230 -- Extended the handler403 documentation.
Backport of 0546794397130b1574a667d57667bd032bff78d3 from master. Added a paragraph on how to use the PermissionDenied exception to create a 403 response and use handler403.
-rw-r--r--docs/topics/http/views.txt11
1 files changed, 11 insertions, 0 deletions
diff --git a/docs/topics/http/views.txt b/docs/topics/http/views.txt
index 7c4d1bbb6e..caa2882f37 100644
--- a/docs/topics/http/views.txt
+++ b/docs/topics/http/views.txt
@@ -209,6 +209,17 @@ This view loads and renders the template ``403.html`` in your root template
directory, or if this file does not exist, instead serves the text
"403 Forbidden", as per :rfc:`2616` (the HTTP 1.1 Specification).
+``django.views.defaults.permission_denied`` is triggered by a
+:exc:`~django.core.exceptions.PermissionDenied` exception. To deny access in a
+view you can use code like this::
+
+ from django.core.exceptions import PermissionDenied
+
+ def edit(request, pk):
+ if not request.user.is_staff:
+ raise PermissionDenied
+ # ...
+
It is possible to override ``django.views.defaults.permission_denied`` in the
same way you can for the 404 and 500 views by specifying a ``handler403`` in
your URLconf::