2014-06-13 8 views
5

रिटर्न मैं हालांकि यह सिर्फ सभी वस्तुओं वापस आती है और किसी भी बाहर फ़िल्टर नहीं करता .filter(field__lte = parameter) उपयोग करते हुए मेरे डेटाबेस में वस्तुओं फिल्टर करने के लिए कोशिश कर रहा हूँ। मैं भी है कि डेटाबेस में संग्रहीत किया जाता है और सभी वस्तुओं को अभी भी लौटा दिया जाता है किसी भी मूल्य से ऊपर के लिए अच्छी तरह से पैरामीटर निर्धारित किया है।Django क्वेरीसमूह फिल्टर जी.टी., एलटी, GTE, एलटीई पूर्ण वस्तु सूची

>> all_objects = Ranked.objects.all() 
>> filtered = all_objects.filter(score__lte = 100) #The max possible score is 100 
>> len(filtered) 
87 #Every object in the db 

डेटाबेस है कि मैं के खिलाफ की क्वेरी कर रहा हूँ में क्षेत्र एक IntegerField है।

मैं गलत यहाँ कुछ कर रही हूँ? आपकी सहायता के लिए धन्यवाद.

+0

शायद सभी वस्तुओं स्कोर है <= 100 आप वाकई वस्तुओं जिसका स्कोर है देखते हैं कर रहे हैं> 100? –

+0

कर प्रयास करें 'score__lte = 10' और अगर आप एक ही परिणाम प्राप्त देखते हैं। यह मेरे लिए ठीक लग रहा है - अधिकतम 100 है, और मुझे सब कुछ से कम या 100 – karthikr

+2

Django ORM के बराबर हालत आप 'की आपूर्ति' filter'' नहीं के रूप में _ "इन दूर से फिल्टर" _ की व्याख्या है, बल्कि के रूप में _ "चलो इन "_ के माध्यम से जाना। –

उत्तर

6

आप कह रहे हैं कि The max possible score is 100। जो अपने खुद के परिभाषा से तालिका में हर वस्तु है - score__lte=100 का उपयोग करके आप 100 के साथ scoreसे कम या बराबर सभी वस्तुओं फ़िल्टर कर रहे हैं।

6

जैसा कि आपने कहा अधिकतम संभव अंक 100 तो वह हमेशा सभी वस्तुओं वापस आ जाएगी क्योंकि lte साधन सभी वस्तुओं जिसका स्कोर या तो कम से कम या 100 के बराबर है वापसी है। आप lt देखने जो सिर्फ उन वस्तुओं जिसका स्कोर है 100 की तुलना में कम वापसी का मतलब है की आवश्यकता हो सकती:

filtered = all_objects.filter(score__lt=100) 
संबंधित मुद्दे