我尝试使用.filter(field__lte = parameter)
过滤数据库中的对象但是它只返回所有对象,并且不会过滤掉任何对象。我甚至将参数设置为远高于存储在数据库中的任何值,并且仍然返回所有对象。
>> 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 :(得分:9)
正如您所说,最高可能分数为100
因此它将始终返回所有对象,因为lte
表示返回分数小于或等于100
的所有对象。您可能需要lt
查找,这意味着只返回分数小于100
的对象:
filtered = all_objects.filter(score__lt=100)
答案 1 :(得分:6)
你说The max possible score is 100
。使用score__lte=100
,您将过滤score
小于或等于 100的所有对象 - 这是您自己定义的表格中的每个对象。