Jeg ved ikke, om jeg får dit spørgsmål, men
Model.objects.filter(x=x, y__isnull = False, z=z)
giver dig forespørgselssættet, hvor y
kolonne er ikke-nul (IS NOT NULL
).
Her er den relevante dokumentation.
EDIT:Tjek, om y er Ingen, og byg dit forespørgselssæt dynamisk:
if y is None:
qs = Model.objects.filter(x=x).filter(z=z)
elif z is None:
qs = Model.objects.filter(x=x).filter(y=y)
...
Hvis der er for mange argumenter at forholde sig til, kan du bruge noget som dette; forudsat at x
, y
, z
er gemt i en ordbog your values
:
your_values = { 'x' : 'x value', 'y' : 'y value', 'z' : 'value'}
arguments = {}
for k, v in your_values.items():
if v:
arguments[k] = v
Model.objects.filter(**arguments)