2010-10-31 6 views
12

मेरे पास एक पिलोन ऐप है जो मैं स्क्लेक्लेमी घोषणात्मक मॉडल का उपयोग कर रहा हूं। कोड को थोड़ा क्लीनर बनाने के लिए मैं एसए बेस पर एक .query जोड़ता हूं और उसके सभी मॉडलों को प्राप्त करता हूं।पिलिन्स/एसए मॉडल में विरासत विधियों को खोजने के लिए पिलिंट प्राप्त करने में परेशानी

तो मेरी app.model.meta में मैं

Base = declarative_base() 
metadata = Base.metadata 
Session = scoped_session(sessionmaker()) 

Base.query = Session.query_property(Query) 

मैं app.model.mymodel में इस वारिस और meta.Base के एक बच्चे के रूप में यह घोषणा लगता है। यह है कि pylint अपने मॉडल में एक मान्य विशेषता के रूप में .query देख पा रहा है है के रूप में मुझे

mymodel.query.filter(mymodel.id == 3).all() 

मुसीबत मेरे प्रश्नों लिखने की सुविधा देता है।

E:102:JobCounter.reset_count: Class 'JobCounter' has no 'query' member 

स्पष्ट रूप से यह त्रुटि किसी भी प्रश्न पर किसी भी मॉडल पर होने के बाद से यह त्रुटि पूरी जगह पर है। मैं सिर्फ त्रुटि को छोड़ना नहीं चाहता क्योंकि यह गैर-कक्षा कक्षाओं पर सड़क के नीचे कुछ बता सकता है, लेकिन मुझे इसे स्वीकार करने के लिए पिलिंट के लिए कुछ याद आना चाहिए।

कोई संकेत?

उत्तर

9

सबसे अच्छा मैं इस चेक को अनदेखा करने के लिए कक्षाओं की एक सूची को पिलिंट पास करने के लिए पा सकता हूं। यह अभी भी इन कक्षाओं के लिए अन्य जांच कर देंगे, तो आप सिर्फ इन कहीं की एक सूची बनाए रखने के लिए होगा:

pylint --ignored-classes=MyModel1,MyModel2 myfile.py

मैं जानता हूँ कि यह आदर्श नहीं है, लेकिन वहाँ तरीके के बारे में कुछ है कि SQLAlchemy सेट है मॉडल जो पिलिंट को भ्रमित करते हैं। कम से कम इस के साथ आप अभी भी गैर-कक्षा कक्षाओं के लिए जांच प्राप्त करते हैं।

+2

मैं एक ही निष्कर्ष पर आया, लेकिन मैंने जेनरेट किए गए सदस्यों के ध्वज को पिलिंट में उपयोग करने के लिए किया था। मैंने एक पिलिंट्रैक तैयार किया जो कि प्रत्येक प्रोजेक्ट के साथ गिट में चेक किया गया है और इसमें जोड़ा गया है: जेनरेट-सदस्य = प्रतिबद्ध, क्वेरी, एड, डिलीट – Rick

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

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