2012-03-06 28 views
9

मैं @login_required सजावटी का उपयोग करने की कोशिश कर रहा हूं लेकिन मुझे 'WSGIRequest' object has no attribute 'user' विशेषताएँ त्रुटि मिलती है। मेरे पास शीर्ष पर आयात विवरण from django.contrib.auth.decorators import login_required है लेकिन मुझे अभी भी त्रुटि मिलती है। जब मैं को def profile(request) के सामने से अपने विचारों में हटा देता हूं तो समस्या दूर हो जाती है लेकिन जब मैं इसे वहां डालता हूं तो समस्या अभी भी वहां होती है।समस्या निवारण 'WSGIRequest' ऑब्जेक्ट में कोई विशेषता 'उपयोगकर्ता' नहीं है?

setting.py

MIDDLEWARE_CLASSES = (
    #~ 'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    #~ 'django.middleware.csrf.CsrfViewMiddleware', 
    #~ 'django.contrib.auth.middleware.AuthenticationMiddleware', 
    #~ 'django.contrib.messages.middleware.MessageMiddleware', 
) 
+0

क्या आप अपनी MIDDLEWARE_CLASSES सेटिंग पोस्ट कर सकते हैं? – jpic

+0

हाँ। उम्मीद है कि मदद करता है। –

उत्तर

10

से मिडिलवेयर कक्षाएं आप, 'django.contrib.auth.middleware.AuthenticationMiddleware' सक्षम करने के लिए, क्योंकि यह request.user सेट की जरूरत है। आपको अन्य डिफ़ॉल्ट मिडलवेयर भी सक्षम करना चाहिए या आपको अन्य समस्याएं होने वाली हैं।

+0

कोई समस्या नहीं, कृपया [प्रश्न बंद करें] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – jpic

3

ओपी के प्रश्न का उत्तर दिया जा सकता है, लेकिन मैं यहां पहुंचा क्योंकि मुझे Django प्रोजेक्ट पर इस त्रुटि का सामना करना पड़ रहा था, जिसमें पहले से ही प्रमाणीकरण मिडलवेयर सक्षम था, और कुछ समय के लिए सफलतापूर्वक चल रहा था।

समस्या यह साबित हुई कि मैं एक अलग यूआरएल का उपयोग कर सर्वर तक पहुंच रहा था, जिसे ALLOWED_HOSTS में कॉन्फ़िगर नहीं किया गया था। यह एक SuspiciousOperation अपवाद फेंक रहा था, और हमारे त्रुटि 500 ​​हैंडलर इसे Django-CMS पृष्ठ पर रूट करने का प्रयास कर रहा था।

दुर्भाग्य से, क्योंकि त्रुटि इसलिए अनुरोध के शुरू में हुआ, नहीं सभी मिडलवेयर संसाधित किया गया था, और user और current_page अभी तक request वस्तु को जोड़ा नहीं किया गया था, तो Django-सीएमएस कई घावों से मृत्यु हो गई जब रेंडर करने के लिए कोशिश कर रहा है पृष्ठ, प्रक्रिया में वास्तविक त्रुटि अस्पष्ट।

मैं runserver का उपयोग करें और इस डिबग करने के लिए pdb breakpoints सम्मिलित करने के लिए, क्योंकि mod_wsgi के तहत चल रहा यह असंभव एक इंटरैक्टिव डिबगर उपयोग करने के लिए बनाता है था, और पश्व-अनुरेखन उपयोगी नहीं था।

संबंधित मुद्दे