मेरे पास एक django प्रोजेक्ट है जिसमें दो ऐप्स हैं, एक AppA
और AppB
है। अब AppA
मैं एक get_object_or_404(ModelA, pk=prim_id)
करते हैं जब यह ModelA
पता चलता है, एक मॉडल ModelA
जो AppB
में मॉडल ModelB
द्वारा संदर्भित है, AppA
के लिए modelA = models.ForeignKey(ModelA, related_name='tricky')
विदेशी के द्वारा Django रिवर्स लुकअप
अभी सेवा का उपयोग किया गया है। तो मैं सभी ModelB
एस प्राप्त करना चाहता हूं जिनकी विदेशी कुंजी ModelA
पर इंगित करती है।
प्रलेखन कहते हैं मैं एक mb = ModelB.objects.get(pk=prim_id)
तो mb.modela_set.all()
करना चाहिए लेकिन, यह mb.modela_set
पर विफल रही है, और यह "ModelB object has no attribute 'suchsuch'"
कहते हैं। नोटिस मैंने related_name
फ़ील्ड को विदेशीकी में जोड़ा, इसलिए मैंने इसके साथ भी कोशिश की, जिसमें mb.tricky.all()
और mb.tricky_set.all()
शामिल नहीं थे।
ओह, और मैंने AppA
के लिए एक अलग प्रबंधक निर्दिष्ट किया है जहां मैं objects = MyManager()
करता हूं जो सामान्य क्वेरी देता है लेकिन फ़िल्टर के साथ लागू होता है।
समस्या क्या हो सकती है? ModelB
एस ModelA
संदर्भित करने का पसंदीदा तरीका क्या है?
आह, मैंने गड़बड़ कर दी है, मॉडल मॉडल को संदर्भित करने के लिए ModelA.tricky.all() कहा जाना चाहिए ... मॉडलबी.tricky.all() गह के बजाय मैं क्या था। – rapadura
यदि आपको लगता है कि आपने अपना प्रश्न गलत बताया है तो कृपया इसे सही होने के लिए संपादित करें। आप अपना प्रबंधक कोड भी शामिल कर सकते हैं! –
@lazerscience, नहीं मैंने इसे सही ढंग से वर्णित किया। – rapadura