2011-09-07 17 views
6

मैं संबंधित मॉडल के माध्यम से query_set कैसे उत्पन्न कर सकता हूं?संबंधित मॉडल के माध्यम से फ़िल्टर करें django

उदाहरण के लिए

, मैं कैसे कर सकते हैं:

UserProfile.objects.filter(user.is_active=True) # Can't use user.is_active to filter 

तुच्छ सवाल है, तुच्छ जवाब। लेकिन मैं इसे यहां पोस्टरिटी के लिए रखूंगा।

+0

मुझे खुशी है कि तुमने किया था हूँ! जो इन दिनों दस्तावेज़ पढ़ता है, एसओ में आना आसान है! – bharal

उत्तर

8
UserProfile.objects.filter(user__is_active=True) 

यह Django डॉक्स में अच्छी तरह से documented है।

+1

हाँ, मुझे बस यह मिला। धन्यवाद। [स्पैनिंग रिलेशनशिप] (https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships) –

3

Django documention

Django से, एक शक्तिशाली और सहज तरीके से करने के लिए लुकअप में रिश्तों "अनुसरण करें" प्रदान करता है एसक्यूएल की देखभाल अपने आप आपके लिए मिलती है, पर्दे के पीछे। रिश्ते को फैलाने के लिए, जब तक आप इच्छित फ़ील्ड तक नहीं पहुंच जाते, तब तक डबल अंडरस्कोर से अलग मॉडलों में संबंधित फ़ील्ड के फ़ील्ड नाम का उपयोग करें।

अपने उदाहरण में यह होगा:

UserProfile.objects.filter(user__is_active=True) 
2

सबसे आसान तरीका है एक रिश्ते का पालन करने के लिए एक सरल उपयोग करने के लिए है "__"।

UserProfile.objects.filter (user__is_active = सच)

ये एक साथ के साथ ही बदला जा सकता है (यानी _उपयोगकर्ता माता पिता _email='[email protected] ')

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