प्रिय लोगों के माध्यम से जा के Django ORM तरह से,दूसरों की मदद करने की कोशिश कर कई कई-से-अनेक संबंध
मैं यह पता लगाने की कैसे Django एक कस्टम एसक्यूएल लेखन के बिना मेरे लिए शामिल हो करने के लिए प्राप्त करने की कोशिश कर रहा हूँ।
चलो कहते हैं कि मैं निम्नलिखित मॉडल
class Parent(models.Model):
name = models.CharField()
children = models.ManyToManyField(Child, through="Parent_Child", related_name="parents")
class Parent_Child(models.Model):
parent = models.ForeignKey(Parent, related_name='attached_children')
child = models.ForeignKey(Child, related_name='attached_parents')
class Child(models.Model):
name = models.CharField()
toys = models.ManyToManyField(Toy, hrough="Child_Toy", related_name="toy_owners")
class Child_Toy(models.Model):
child = models.ForeignKey(Child, related_name='attached_toys')
toy = models.ForeignKey(Toy, related_name='toy_owner')
class Toy(models.Model):
name = models.CharField
का जनक कई बच्चे हैं कर सकते हैं। एक बच्चे के कई माता-पिता हो सकते हैं। एक बच्चे को कई खिलौने मिल सकते हैं। खिलौने कई बच्चों के स्वामित्व में हो सकता है।
मैं माता-पिता के बच्चों के स्वामित्व वाले सभी खिलौनों की एक सूची प्राप्त करना चाहता हूं। AttributeError: 'ManyRelatedManager' object has no attribute 'toys'
: parent.children.all()
और child.toys.all()
मुझे क्या करना चाहते हैं parent.children.toys.all()
की तरह कुछ है जब मैं यह करने के लिए मैं कोशिश:
तो, मैं जैसे काम कर सकें। मैं त्रुटि समझता हूं - parent.children
एकाधिक रिकॉर्ड देता है। यह उम्मीद है। मैं यह नहीं समझ सकता कि Django को संकेत देने के लिए कि मैं इसे अपनी क्वेरी में अतिरिक्त जोड़ना चाहता हूं।
क्या ऐसा कोई तरीका है जो मैं Django के भीतर शामिल हो सकता हूं या ऐसा करने के लिए मुझे कस्टम एसक्यूएल पर जाने की आवश्यकता है?
कृपया ध्यान दें: उपर्युक्त सिर्फ मेरी समस्या को स्पष्ट करने के लिए है, वास्तविक मॉडल जो मैं उपयोग कर रहा हूं वह प्रासंगिक नहीं हैं। मेरी समस्या वास्तव में एसक्यूएल का सहारा लेने के बिना Django में कई एम 2 एम संबंधों के माध्यम से शामिल होने का तरीका जानने का प्रयास कर रही है।
मैं आपकी मदद की अग्रिम में सराहना करता हूं। धन्यवाद!
मैं एक नया उत्तर लिखें नहीं करना चाहते, लेकिन डॉक्स के लिए एक लिंक जोड़ना होगा: http : ddango जॉइन पर जानकारी के लिए //docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships विशेष रूप से यह सीखने में मददगार होगा कि फ़िल्टरिंग() आपके एम 2 एम क्वेरी –