को ओवरराइड करने के लिए कैसे करें यदि सीएसआरएफ जांच विफल हो जाती है, तो Django 403 त्रुटि वाला एक पृष्ठ प्रदर्शित करता है।Django: CSRF_FAILURE_TEMPLATE
मुझे ऐसा लगता है कि इस त्रुटि, नियमित रूप से उपयोग में हो सकता है, उदाहरण के लिए उपयोगकर्ता अपने ब्राउज़र सेटिंग्स में कुकी उपयोग को निष्क्रिय जब।
दुर्भाग्यवश, यह त्रुटि संदेश अंतिम उपयोगकर्ता के लिए बहुत उपयोगी नहीं है और इसमें "django-error" लेआउट है (यह एक समस्या है क्योंकि उदाहरण के लिए साइट नेविगेशन गुम है)।
Django टेम्पलेट को ओवरराइड करने के लिए एक महान तंत्र है लेकिन ऐसा लगता है कि यह टेम्पलेट कोड में हार्ड-कोड किया गया है। https://github.com/django/django/blob/1.6.8/django/views/csrf.py
क्या उपयोगकर्ताओं को अधिक मित्रवत संदेश प्रदान करने के लिए इस टेम्पलेट को ओवरराइड करने का कोई तरीका है?
CSRF_FAILURE_VIEW = 'your_app_name.views.csrf_failure'
इसके अलावा, आप (इस हस्ताक्षर की आवश्यकता है अपने दृश्य में एक csrf_failure
समारोह को परिभाषित करने की आवश्यकता होगी:: आधारित def csrf_failure(request, reason="")
धन्यवाद। यह वही है जो मुझे चाहिए। बस ध्यान दें कि "कारण" एक डेवलपर संदेश है और अंतिम उपयोगकर्ता को नहीं दिखाया जाना चाहिए। तो, मेरे मामले में, मैं इसे अपना टेम्पलेट प्रदर्शित नहीं करूंगा। – luc
@luc, मेरे उत्तर को नोट किया और संपादित किया, धन्यवाद! – dazedconfused
आप इसका परीक्षण कैसे करेंगे? – guival