मैं SQLAlchemy 0.5rc उपयोग कर रहा हूँ, और मैं, एक रिश्ता करने के लिए एक स्वचालित फ़िल्टर जोड़ने के लिए इतना है कि हर बार यह कोशिश करता है कि संबंध के लिए रिकॉर्ड लाने के लिए चाहते हैं, यह "दूरस्थ" लोगों पर ध्यान नहीं देता है अगर वे के रूप में चिह्नित कर रहे हैं "logically_deleted" (बच्चे तालिका के एक बूलियन क्षेत्र)SQLAlchemy के साथ संबंध में स्वचालित फ़िल्टर कैसे जोड़ें?
उदाहरण के लिए, एक वस्तु "जनक" एक "बच्चों" संबंध 3 रिकॉर्ड है कि है, लेकिन उनमें से एक तार्किक, हटा दिया जाता है जब मैं "के लिए क्वेरी अगर जनक "मैं को SQLA चाहते हैं सिर्फ दो बच्चों के साथ माता-पिता वस्तु लाने ..
मैं इसे कैसे करना चाहिए? प्राथमिकता संबंध के पैरामीटर को "और" स्थिति जोड़कर? (उदाहरण के लिए "Children.parent_id == Parent.id and Children.logically_deleted == False
", लेकिन यह सही लिखने के लिए "और" इस तरह से है?)
संपादित करें:
मैं इस तरह से
children = relation("Children", primaryjoin=and_(id == Children.parent_id, Children.logically_deleted==False))
में ऐसा करने में कामयाब रहे, लेकिन वहाँ एक रास्ता है प्राथमिक स्ट्रिंग के रूप में स्ट्रिंग का उपयोग करने के लिए?
क्या इसका अनुवाद __mapper_args__ का उपयोग करने के लिए किया जा सकता है? मेरा मतलब है कि मैं घोषणात्मक का उपयोग कर रहा हूँ। – Marconi
मैंने इसे mapper_args में उपयोग करने का प्रयास किया, लेकिन मुझे एक त्रुटि संदेश मिला "मैपर() को कीवर्ड तर्क 'local_table' के लिए कई मान मिल गए हैं। तो मुझे डर है कि यह बेकार है। –