我试图使用.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
。
我在这里做错了什么吗?谢谢你的帮助。
正如您所说的最大可能分数是100
,因此它将始终返回所有对象,因为lte
意味着返回分数小于或等于100
的所有对象。您可能需要lt
查找,这意味着只返回得分小于100
的对象:
filtered = all_objects.filter(score__lt=100)
你说的是The max possible score is 100
。通过使用score__lte=100
,您可以过滤score
小于或等于 100的所有对象-根据您自己的定义,这是表中的每个对象。