2016-12-02 17 views
5

मेरे पास निम्नलिखित Django मॉडल हैं।Django select_related फ़िल्टर

class A(models.Model): 
    tmp = models.ForeignKey(B) 
    active = models.BooleanField() 

class B(models.Model): 
    active = models.BooleanField() 
    archived = models.BooleanField() 

अब मेरे पास निम्न क्वेरी है।

A.objects.select_related(B).filter(active=True) 

अब इस बी की सभी वस्तुओं को हासिल करेगा अब मैं कैसे मॉडल B के लिए select_related खंड में active=True और archived=False के एक फिल्टर शामिल कर सकते हैं।

उत्तर

10

आप किसी भी अन्य संबंधित क्षेत्र के साथ होता है के रूप में ही, एक __ देखने के साथ ..

A.objects.select_related(B).filter(active=True, tmp__active=True, tmp__archived=False) 

का उपयोग का चयन संबंधित यहाँ कुछ भी नहीं बदलता है, इसका उद्देश्य क्या जानकारी परिणामों के साथ दिया जाता है के बारे में है, इसका फ़िल्टरिंग पर कोई प्रभाव नहीं पड़ता है।

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