J'essaie de filtrer les objets de ma base de données à l'aide de .filter(field__lte = parameter)
mais il ne renvoie que TOUS les objets et n'en filtre aucun. J'ai même réglé le paramètre bien au-dessus de toute valeur stockée dans la base de données et tous les objets sont toujours retournés.
>> 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
Le champ de la base de données sur lequel je recherche est un IntegerField
.
Est-ce que je fais quelque chose de mal ici? Merci de votre aide.
Comme vous l'avez dit, le score maximum possible est de 100
donc il retournera toujours tous les objets car lte
signifie retourner tous les objets dont le score est soit inférieur ou égal à 100
. Vous devrez peut-être rechercher lt
, ce qui signifie simplement renvoyer les objets dont le score est inférieur à 100
:
filtered = all_objects.filter(score__lt=100)
Vous dites que The max possible score is 100
. En utilisant score__lte=100
, vous filtrez tous les objets avec score
inférieur ou égal à 100 - qui est chaque objet du tableau selon votre propre définition.