Répondre

1

Vous n'êtes pas ajouté à entries à chaque itération de la boucle for, donc vous obtenez uniquement les résultats de la dernière catégorie. Essayez ceci:

entries = Entry.objects.filter(score__gte=10, category__is_featured=True).order_by("-pub_date")[:10] 
2

Vous voudrez peut-être commencer par lire le django docs sur ce sujet. Cependant, juste pour vous aider à démarrer, la méthode filter() est comme n'importe quelle autre méthode, en ce sens qu'elle ne prend que des arguments et des arguments, pas des expressions. Donc, vous ne pouvez pas dire foo <= bar, juste foo=bar. . Django contourne cette limitation en permettant des noms de mots clés pour indiquer la relation avec la valeur que vous passez dans votre cas, vous souhaitez utiliser:

Entry.objects.filter(score__gte=10) 

Le __gte ajouté au nom du champ indique la comparaison à effectuer (score >= 10).

Questions connexes