2009-07-06 13 views
13

मैं "पिता"मैं Django मॉडल में सभी ऑब्जेक्ट्स कैसे प्राप्त कर सकता हूं जिनके पास विदेशीकी फ़ील्ड के लिए विशिष्ट मान है?

class Item(models.Model): 
parent = models.ForeignKey(Parent) 

यह FK मॉडल

class Parent(models.Model): 
name = models.CharField(blank=True, max_length=100) 

def __unicode__(self): 
    return str(self.name) 

मैं एक प्रश्न है कि "xyz के एक माता पिता के साथ सभी आइटम हो जाता है चलाने के लिए कोशिश कर रहा हूँ है की एक विदेशी कुंजी के साथ एक मॉडल है "मैं कुछ भी नहीं

Item.objects.filter(parent="xyz") 

मिल जब मैं कोशिश:

Item.objects.filter(parent.name="xyz") 

या:

SyntaxError: keyword can't be an expression 

यह करने के लिए उचित तरीका क्या है:

Item.objects.filter(str(parent)="xyz") 

मैं कोई त्रुटि मिलती है?

उत्तर

26

आप विदेशी कुंजी संबंधों में फ़ील्ड तक पहुंचने के लिए filter() पर दिए गए कीवर्ड में एक डबल अंडरस्कोर का उपयोग कर सकते हैं। इस तरह:

Item.objects.filter(parent__name="xyz") 

Django documentation

+0

भयानक धन्यवाद। –

1
बस Googler के लिए भविष्य में संदर्भ, Django के हाल के संस्करणों के साथ के लिए

आप कीवर्ड में एक अतिरिक्त विधि का उपयोग करने के लिए है। उदाहरण के लिए, parent__name के बजाय आपको parent__name__exact करना होगा। काटो के लिंक में अन्य उदाहरण हैं।

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

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