2011-07-01 14 views
15

में कई से अधिक रिश्तों की पूछताछ मेरे पास ब्लॉग के समान-बहुत से रिश्ते हैं -> ओआरएम ट्यूटोरियल में कीवर्ड रिश्ते।SQLAlchemy

मैं कीवर्ड की एक सूची के लिए पूछताछ करना चाहता हूं, ब्लॉग पोस्ट लौटा रहा हूं जहां उनमें से कोई भी मेल खाता है। हालांकि, अगर ऐसा करने का कोई आसान तरीका है तो मैं काम नहीं कर सकता। मैं अनेक फ़िल्टर जोड़, बार-बार

.filter(Blog.keywords.any(Keyword.name == 'keyword')) 

कर तो मैं एक 'और'/क्वेरी, जैसे कि जो उन सभी कीवर्ड नहीं है केवल पदों लौटा दिया जाएगा 'मौजूद है' मिलता है। क्या इसे 'OR' क्वेरी के रूप में करने का कोई आसान तरीका है, या मुझे जॉइन() का उपयोग करके काम करने की ज़रूरत है।

किसी भी मदद के लिए धन्यवाद; मैं काम नहीं कर सकता कि मुझे कुछ याद आ रही है या नहीं।

उत्तर

21

मुझे लगता है कि तुम सिर्फ चाहते

.filter(Blog.keywords.any(Keyword.name.in_(['keyword1', 'keyword2', ...]))) 
संदर्भ के लिए

मैं http://www.sqlalchemy.org/docs/05/ormtutorial.html#common-filter-operators उपयोग कर रहा हूँ

+0

धन्यवाद, _in था कि वास्तव में क्या मैं अनदेखी की थी। – somewhatoff

+10

यदि आप इसे तेजी से करना चाहते हैं तो कोशिश करें: .join (Blog.keywords) .filter (Keyword.name.in _ (['keyword1', ...]) –