Query

WHERE

all

filter

functions

logique ET, OU

relation

subquery

exclude

exclude fonctionne sur le même principe que filter mais inverse les opérateurs.
Par exemple, IN devient NOT IN.

qs = Patient.objects.exclude(id=1)

'''
SELECT *
FROM patient
WHERE NOT (id IN (1,  2));
'''

none

none permet de créer un queryset qui ne retournera aucun résultat.
Cela permet de continuer à chaîner des méthodes sur ce queryset, bien qu’on sache déjà qu’il n’y aura pas de résultat.

qs = Patient.objects.all()

if not has_access:
    qs = qs.none()

qs = qs.only('id', 'firstname')
'''
# (aucune requête effectuée)
'''

JOIN


SELECT

only

distinct


ORDER BY

order by


LIMIT

limit & offset


SELECT AS

annotate


CUSTOM

raw

cursor