217đź‘Ť
Return it from the view as you would any other response.
from django.http import HttpResponseForbidden
return HttpResponseForbidden()
466đź‘Ť
if you want to raise an exception you can use:
from django.core.exceptions import PermissionDenied
def your_view(...):
raise PermissionDenied()
It is documented here :
https://docs.djangoproject.com/en/stable/ref/views/#the-403-http-forbidden-view
As opposed to returing HttpResponseForbidden
, raising PermissionDenied
causes the error to be rendered using the 403.html
template, or you can use middleware to show a custom “Forbidden” view.
- [Django]-Django – Render the <label> of a single form field
- [Django]-Add additional options to Django form select widget
- [Django]-Parsing unicode input using python json.loads
13đź‘Ť
You can optionally supply a custom template named “403.html” to control the rendering of 403 HTTP errors.
As correctly pointed out by @dave-halter, The 403 template can only be used if you raise PermissionDenied
Below is a sample view used to test custom templates “403.html”, “404.html” and “500.html”; please make sure to set DEBUG=False in project’s settings or the framework will show a traceback instead for 404 and 500.
from django.http import HttpResponse
from django.http import Http404
from django.core.exceptions import PermissionDenied
def index(request):
html = """
<!DOCTYPE html>
<html lang="en">
<body>
<ul>
<li><a href="/">home</a></li>
<li><a href="?action=raise403">Raise Error 403</a></li>
<li><a href="?action=raise404">Raise Error 404</a></li>
<li><a href="?action=raise500">Raise Error 500</a></li>
</ul>
</body>
</html>
"""
action = request.GET.get('action', '')
if action == 'raise403':
raise PermissionDenied
elif action == 'raise404':
raise Http404
elif action == 'raise500':
raise Exception('Server error')
return HttpResponse(html)
- [Django]-Add inline model to django admin site
- [Django]-Homepage login form Django
- [Django]-Django – accessing the RequestContext from within a custom filter
5đź‘Ť
Try this Way , sending message with Error
from django.core.exceptions import PermissionDenied
raise PermissionDenied("You do not have permission to Enter Clients in Other Company, Be Careful")
- [Django]-Passing STATIC_URL to file javascript with django
- [Django]-Django datetime issues (default=datetime.now())
- [Django]-Django form fails validation on a unique field