2015-10-07 9 views
6

मैंने एक दृश्य में is_authenticated() का उपयोग करने का प्रयास किया, लेकिन त्रुटि 'TypeError:' bool 'ऑब्जेक्ट को कॉल करने योग्य नहीं मिला। मुझे यह त्रुटि क्यों मिल रही है और मैं इसे कैसे ठीक करूं?is_authenticated() टाइपर टाइप टाइपर: 'बूल' ऑब्जेक्ट कॉल करने योग्य नहीं है

@auth.before_app_request 
def before_request(): 
    if current_user.is_authenticated() \ 
      and not current_user.confirmed \ 
      and request.endpoint[:5] != 'auth.' \ 
      and request.endpoint != 'static': 
     return redirect(url_for('auth.unconfirmed')) 
+0

कोष्ठक ड्रॉप – hsfzxjy

+0

'()' हटाएं। –

+0

आपकी मदद के लिए धन्यवाद! – Gaoyang

उत्तर

6

"ऑब्जेक्ट कॉल करने योग्य नहीं है" त्रुटि तब होती है जब आप किसी ऑब्जेक्ट का व्यवहार करने की कोशिश कर रहे हैं जैसे कि यह एक विधि या फ़ंक्शन है।

इस मामले में

:

current_user.is_authenticated() 

आप एक विधि है, लेकिन इसके नहीं एक विधि के रूप current_user.is_authenticated behaveing ​​कर रहे हैं। "()" तरीकों या काम करता है, नहीं के बाद वस्तुओं

current_user.is_authenticated 

आप का उपयोग करें:

आप इस तरह से इसका इस्तेमाल किया है।

कुछ मामलों में एक वर्ग __call__ फ़ंक्शन लागू कर सकता है जिसे आप किसी ऑब्जेक्ट को भी कॉल कर सकते हैं, तो यह कॉल करने योग्य होगा।

8
Flask-Login 0.3.0 से

(10 वीं सितंबर को जारी की है, 2015) परिवर्तन:

  • BREAKING: The is_authenticated , is_active , and is_anonymous members of the user class are now properties, not methods. Applications should update their user classes accordingly.

तो आपको उसके अनुसार user वर्ग और कोड बदलने की जरूरत है।

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