साथ संबंध मैं 4 मॉडल है और मैं एक उन दोनों के बीचDjango रिवर्स select_related
ModelA
class ModelA(models.Model):
product = models.ForeignKey(ModelB)
group = models.ForeignKey(Group)
में शामिल होने को पुनः प्राप्त करने ModelB
class ModelB(models.Model):
title = models.CharField()
ModelC
चाहतेclass ModelC(models.Model):
product = models.ForeignKey(ModelB)
group = models.ForeignKey(ModelD)
ModelD
class ModelD(models.Model):
name = models.CharField()
अब मैं सब मेरी ModelA वस्तुओं साथ शामिल हो गए ModelB, ModelC और ModelD एसक्यूएल में यह करने के लिए बहुत आसान बात है चाहता हूँ। बस टेबल के बीच जुड़ें। Django ORM के साथ मैं अटक गया क्योंकि मैं केवल आगे संबंध कर सकता हूं।
मैं इस
ModelA.objects.all().select_related(product)
कर रहा हूँ लेकिन मैं ModelC शामिल नहीं हो सकते मैं पहले से ही this article पढ़ा है, लेकिन मैं नहीं एक साधारण बात करने के लिए मेरा बड़ा सूची पर लूप करना चाहते हैं,! और मैं केवल एक बार डेटाबेस हिट करना चाहता हूं।
मैं Django के अंतिम संस्करण का उपयोग कर रहा हूं और मुझे उम्मीद है कि इसके लिए पहले से ही एक समाधान है, मुझे पता नहीं है।
धन्यवाद।
क्या आपने ऐसा कुछ करने की कोशिश की है: 'ModelA.objects.all()।select_related ('product', 'product__modelc', 'product__modelc__group') ' ? इसे उत्तर के रूप में पोस्ट नहीं करना क्योंकि मुझे बिल्कुल यकीन नहीं है कि यह वही होगा जो आप चाहते हैं। –
@ बिल्डाजा: 'select_related' * समर्थन ट्रैवर्सल नहीं है। –