Ich versuche, Objekte in meiner Datenbank mit .filter(field__lte = parameter)
zu filtern, aber es gibt nur alle Objekte zurück und filtert keine aus. Ich habe den Parameter sogar weit über jeden Wert gesetzt, der in der Datenbank gespeichert ist, und alle Objekte werden noch zurückgegeben.Django Queryset-Filter GT, LT, GTE, LTE gibt vollständige Objektliste zurück
>> 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
Das Feld in der Datenbank, die ich gegen bin Abfrage ist ein IntegerField
.
Mache ich hier etwas falsch? Danke für Ihre Hilfe.
Vielleicht sind alle Objekte Tor gegangen <= 100. Sind Sie sicher, dass es Objekte sind, deren Score> 100? –
Versuchen Sie 'score__lte = 10' und sehen Sie, ob Sie das gleiche Ergebnis erhalten. Es sieht gut aus für mich - Max ist 100, und bekomme ich alles kleiner als oder gleich 100 – karthikr
Django ORM interpretiert die Bedingung, die Sie liefern "Filter" nicht als "filter diese weg" _, sondern eher als _ "lassen diese gehen durch "_. –