जवाबों:
किसी अन्य प्रतिक्रिया के रूप में इसे उस दृश्य से लौटाएं।
from django.http import HttpResponseForbidden
return HttpResponseForbidden()
raise PermissionDenied
करने से आपको अपने कस्टम 403 दृश्य
यदि आप एक अपवाद उठाना चाहते हैं, जिसका आप उपयोग कर सकते हैं:
from django.core.exceptions import PermissionDenied
def your_view(...):
raise PermissionDenied()
यह यहाँ प्रलेखित है:
https://docs.djangoproject.com/en/stable/ref/views/#the-403-http-forbidden-view
के रूप में returing करने का विरोध किया HttpResponseForbidden
, ऊपर उठाने PermissionDenied
का उपयोग कर त्रुटि प्रदान करने का कारण बनता है 403.html
टेम्पलेट, या आप मिडलवेयर का उपयोग एक कस्टम दृश्य "निषिद्ध" दिखाने के लिए कर सकते हैं।
throw PermissionDenied
हैं कि फ़ंक्शन कॉल के रूप में नहीं, ()
अंत में बिना ।
आप वैकल्पिक रूप से 403 HTTP त्रुटियों के प्रतिपादन को नियंत्रित करने के लिए "403.html" नामक एक कस्टम टेम्पलेट की आपूर्ति कर सकते हैं।
जैसा कि @ dave-halter द्वारा सही ढंग से बताया गया है, 403 टेम्पलेट का उपयोग केवल तभी किया जा सकता है जब आप PermissionDenied बढ़ाते हैं
नीचे एक नमूना दृश्य है जिसका उपयोग कस्टम टेम्प्लेट "403.html", "404.html" और "500.html" का परीक्षण करने के लिए किया जाता है; कृपया प्रोजेक्ट की सेटिंग में DEBUG = गलत सेट करना सुनिश्चित करें या फ्रेमवर्क 404 और 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)
इस तरीके को आज़माएं, त्रुटि के साथ संदेश भेज रहा है
from django.core.exceptions import PermissionDenied
raise PermissionDenied("You do not have permission to Enter Clients in Other Company, Be Careful")
Http404
लेकिन नहींHttp403
? असंगति क्यों?