Comment dois-je faire un pas égal dans Django queryset de filtrage?

Dans Django modèle QuerySets, je vois qu'il y a un __gt et __lt pour comparative des valeurs, mais est-il une __ne/!=/<> (pas égale?)

Je veux filtrer à l'aide d'un pas égal:

Exemple:

Model:
    bool a;
    int x;

Je veux

results = Model.objects.exclude(a=true, x!=5)

La != n'est pas la syntaxe correcte. J'ai essayé __ne, <>.

J'ai fini par utiliser:

results = Model.objects.exclude(a=true, x__lt=5).exclude(a=true, x__gt=5)
  • Aurait résultats = Modèle.objets.exclure(a=vrai).filtre(x=5) ont travaillé?
  • Pas de. Votre requête exclut tous les a=true d'abord, puis applique la x=5 filtre sur le reste. Le but de la requête nécessaire seulement ceux avec a=true et x!=5. La différence étant que tous ceux avec a=true et x=5 sont également filtrés.
InformationsquelleAutor MikeN | 2009-03-26