मैं एसक्लाक्लेमी का उपयोग कर रहा हूं, और मेरे ऑब्जेक्ट मॉडल में कई कक्षाओं में एक ही दो विशेषताएं हैं: आईडी और (पूर्णांक & प्राथमिक कुंजी), और नाम (एक स्ट्रिंग)। मैं उन्हें हर वर्ग में घोषित करने से बचने की कोशिश कर रहा हूं:SQLAlchemy: घोषणात्मक शैली वर्ग परिभाषा में पुनरावृत्ति से बचने
class C1(declarative_base()):
id = Column(Integer, primary_key = True)
name = Column(String)
#...
class C2(declarative_base()):
id = Column(Integer, primary_key = True)
name = Column(String)
#...
ऐसा करने का एक अच्छा तरीका क्या है? मैंने मेटाक्लास का उपयोग करने की कोशिश की लेकिन यह अभी तक काम नहीं कर सका।
दुर्भाग्य से, यह काम नहीं करेगा क्योंकि आईडी विशेषता को IdNameMixin के सभी उप-वर्गों में साझा किया जाएगा। स्क्लेक्लेमी में, प्रत्येक वर्ग में अपनी आईडी (कक्षा कॉलम का एक नव निर्मित वस्तु) होना चाहिए। – max
आम तौर पर आप सही होंगे, लेकिन मेरा अद्यतन उत्तर देखें। – dhaffey
आह बहुत अच्छा !! धन्यवाद। अब अगर मैं केवल '__tablename__' के बारे में कुछ कर सकता हूं, जो निश्चित रूप से अद्वितीय होना चाहिए :) लेकिन मुझे अपने मेटाक्लास संशोधन से बेहतर मिश्रण श्रेणी के साथ आपका दृष्टिकोण पसंद है। – max