2011-10-24 15 views
18

यह हमेशा यह कोड नहीं होता है लेकिन यह सबसे हालिया है। ऐसा लगता है कि यादृच्छिक, कोई विचार?टाइपरर: 'डॉट नॉटएक्सिस्ट' ऑब्जेक्ट कॉल करने योग्य नहीं है

try: 
    u = User.objects.get(email__iexact=useremail) 
except User.DoesNotExist: 
    ... 

इस त्रुटि को यादृच्छिक रूप से फेंकता है।

File "/srv/myapp/registration/models.py", line 23, in get_or_create_user 
    u = User.objects.get(email__iexact=useremail) 

File "/usr/local/lib/python2.6/dist-packages/django/db/models/manager.py", line 132, in get 
    return self.get_query_set().get(*args, **kwargs) 

File "/usr/local/lib/python2.6/dist-packages/django/db/models/query.py", line 349, in get 
    % self.model._meta.object_name) 

TypeError: ‘DoesNotExist’ object is not callable 
+0

लगता है जैसे आप कहीं भी खराब असाइनमेंट कर रहे हैं। वास्तव में –

+0

। आपके द्वारा पोस्ट किए गए स्निपेट के बारे में कुछ भी "गलत" नहीं है। कहीं और समस्या समस्या पैदा कर रही है। –

+0

इस पर ट्रेस कैसे करें इस पर कोई विचार? जैसे मैंने कहा कि यह सिर्फ यह कोड नहीं है, हालांकि यह एक ही मोडल पर होता है। हम इसे दोहराना नहीं कर सकते हैं इसलिए डीबग करना असंभव है। –

उत्तर

40

जैसा क्रिस ऊपर की टिप्पणियों में कहता है, आपका स्निपेट मान्य है। आपके कोड में कहीं और, आप अपवादों को गलत तरीके से पकड़ सकते हैं।

try: 
    do_something() 
except User.MultipleObjectsReturned, User.DoesNotExist: 
    pass 
बजाय

:

आप की तरह कुछ हो सकता है

try: 
    do_something() 
except (User.MultipleObjectsReturned, User.DoesNotExist): 
    pass 

कोष्ठकों के बिना, बयान को छोड़कर अजगर में 2.6+

except User.MultipleObjectsReturned as User.DoesNotExist: 

निम्नलिखित के बराबर है User.MultipleObjectsReturned अपवाद का उदाहरण User.DoesNotExist ओवरराइट करता है।

जब एक ही प्रक्रिया बाद में एक अलग अनुरोध को संभालती है, तो आपको TypeError मिलता है क्योंकि आपका कोड अपवाद उदाहरण को कॉल करने का प्रयास कर रहा है जिसने User.DoesNotExist को बदल दिया है।

+0

यह एक संभावित उम्मीदवार की तरह लगता है –

+2

अद्भुत! धन्यवाद, सभी DoNotExists के लिए एक त्वरित grep अपराधी दिखाया। LoginKey.DoesNotExist को छोड़कर, उपयोगकर्ता। DoesNotExist: –

+0

हाँ, यह पूरी तरह से एक मुद्दा तय करता है जो मुझे महीनों के लिए परेशान कर रहा है। मैंने अपने प्रोजेक्ट में "डॉट नॉटएक्सिस्ट" के लिए एक खोज किया है, यह देखने के लिए कि मैं कहां से माता-पिता को भूल सकता हूं। धन्यवाद! –

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