Django - custom 403 template
Solution 1
For regular 403 permission denied pages, creating the 403.html
template should work.
However, for CSRF errors (which also return status code 403), you should create a 403_csrf.html
template instead.
Creating a 403_csrf.html
template works in Django 1.10+. For earlier versions, you had to change the CSRF_FAILURE_VIEW
setting to the view you want to use.
See the CSRF docs for more info.
There was a discussion about why the CSRF failure view behaves differently in the Django-developers mailing list this week.
Solution 2
You need to use 403_csrf.html
.
arnon cohen
Updated on July 22, 2022Comments
-
arnon cohen almost 2 years
I'm trying to use my 403, 404, 500 custom templates in Django 1.5 . 404 and 500 work perfectly, but 403 still showing me the built-in Django 403 template.
I put all three templates in the root template directory in my project. They are named : 403.html, 404.html, 500.html
I also tried using:
urls.py:
from django.utils.functional import curry handler403 = curry(permission_denied, template_name='403.html')
and also: urls.py:
handler403 = 'proj_name.views.my_custom_permission_denied_view'
proj_name/views.py
def my_custom_permission_denied_view(request): return ethoos_response('403.html', None, request)
Both methods do not work. Also in 404 and 500 I use none of these methods, just the templates inside the template directory, and they are shown.
All three suppose to work the same way according to Django's documentation. https://docs.djangoproject.com/en/1.5/topics/http/views/#the-403-http-forbidden-view
I have no idea why only 403 doesn't. Thanks.
-
Hedde van der Heide over 8 yearsWorks for me, there should be no requirement to overwrite any code. What's your exact django version, what does your template setting look like, have you put a breakpoint in the 403 handler to see what is going on?
-
arnon cohen over 8 yearsmy Django.version is (1, 5, 0, 'final', 0) . I have not yet breakpointed the handler.
-
e4c5 over 8 yearsAny particular reason you are using Django 1.5 ? in two weeks time, it would have been unsupported for a full year djangoproject.com/download
-
Tom Dalton over 6 yearsThe latest docs for the 403 handler in django are here docs.djangoproject.com/en/1.11/topics/http/views/…
-
-
arnon cohen over 8 yearsThank you! that was it. I also recommend on this solution example: stackoverflow.com/questions/26925244/…