Tuesday 15 September 2015

Django - filter query returns incorrect queryset -


यहाँ मेरा विक्रेता मॉडल है।

  वर्ग विक्रेता ( Models.Model): क्लस्टर = मॉडल। कई टाईमैंफिल्ड (क्लस्टर) नाम = मॉडल। खरीफिल्ड (_ ("विक्रेता का नाम"), अधिकतम_लाँग = 30) फोन = मॉडल.इटेगरफिल्ड (_ ("विक्रेता फ़ोन नंबर"), अधिकतम_लाँग = 10 ) पता = मॉडल.कारफिल्ड (_ ("विक्रेता पता"), अधिकतम_लांबी = 70) वस्तुओं = विक्रेता प्रबंधक () def __str __ (स्वयं): वापस स्वयं। नाम  

क्लस्टर < / Code> एक कई सारे मेलफ़ील्ड से विक्रेता से क्लस्टर मॉडल है, जो निम्नानुसार है -

  वर्ग क्लस्टर (models.Model): clusterName = models.CharField (_ ("Locality name"), max_length = 70)  

अब, मैं निम्नलिखित प्रश्न चलाता हूँ -

 Vendor.objects.values ​​('id', 'cluster')। सभी ()  

यह परिणाम देता है - [{'क्लस्टर': 3, '' आईडी ': 2}, {' क्लस्टर ': 3,' आईडी ': 3}, {' क्लस्टर ': 4,' आईडी ': 3}]

स्पष्ट रूप से, विक्रेताओं के साथ आईडी 3 आईडी 3 और 4 के साथ दो समूहों से संबंधित है और आईडी 2 वाला विक्रेता आईडी 2 के साथ क्लस्टर से जुड़ा है।

चलने पर,

  विक्रेता। ('आईडी', 'क्लस्टर')। फ़िल्टर (क्लस्टर = 3) ` 

मुझे यह उम्मीद है कि [{'क्लस्टर': 3, 'id': 2} , {'क्लस्टर': 3, 'आईडी': 3}]

हालांकि, यह रिटर्न

  [{'क्लस्टर': 3, 'id ': 2}, {' क्लस्टर ': 3,' आईडी ': 3}, {' क्लस्टर ': 4,' आईडी ': 3}]।  

मुझे यकीन नहीं है, लेकिन ऐसा इसलिए होता है क्योंकि .filter () उस विक्रेता आईडी को ढूँढता है जो क्लस्टर आईडी 3 के अनुरूप होता है, और उसके बाद सभी क्वेरीस संबंधित उस विशिष्ट विक्रेता आईडी को।

हालांकि, मैं इसे केवल उन क्वेरी को वापस करना चाहता हूं जो कि केवल क्लस्टर आईडी पर मैप किए जाते हैं।

No comments:

Post a Comment