आप अपनी साइट पर सभी दृश्यों के लिए इस व्यवहार चाहते हैं, आप शायद process_exception
विधि के साथ अपना खुद का मिडलवेयर लिखना चाहें।
from django.template import TemplateDoesNotExist
from django.views.defaults import page_not_found
class TemplateDoesNotExistMiddleware(object):
"""
If this is enabled, the middleware will catch
TemplateDoesNotExist exceptions, and return a 404
response.
"""
def process_exception(self, request, exception):
if isinstance(exception, TemplateDoesNotExist):
return page_not_found(request)
आप अपने खुद के निर्धारित किया है तो handler404
आप ऊपर page_not_found
को बदलने के लिए की आवश्यकता होगी। मैं .. तुरंत यकीन है कि कैसे आप प्रतिदेय मिडलवेयर में आवश्यक में स्ट्रिंग handler404
परिवर्तित कर सकते हैं नहीं कर रहा हूँ
, अपने मिडलवेयर सक्षम करने के लिए settings.py
में MIDDLEWARE_CLASSES
में जोड़ें। उस स्थिति से सावधान रहें जहां आप इसे जोड़ते हैं। मानक डीजेगो मिडलवेयर चेतावनी लागू होती है:
फिर, प्रतिक्रिया चरण के दौरान मिडलवेयर रिवर्स ऑर्डर में चलाए जाते हैं, जिसमें process_exception शामिल है। यदि कोई अपवाद मिडलवेयर प्रतिक्रिया देता है, तो उस मिडलवेयर के ऊपर मिडलवेयर कक्षाओं को बिल्कुल भी नहीं बुलाया जाएगा।
अपवाद आयात करने की आवश्यकता है: 'django.template आयात टेम्पलेट DoesNotExist' से। –
अतिरिक्त के लिए धन्यवाद। मैं भूल जाता हूं कि अपवाद आयात करना है, क्योंकि जांच नहीं हो सका। जवाब संपादित किया। –
हाँ, मुझे पता है कि मैं यह कर सकता हूं, लेकिन यह अल विचारों में कुछ बॉयलरप्लेट बन जाता है। मुझे उम्मीद थी कि ऐसा करने का एक वैश्विक तरीका था। – Andrea