sql >> Database teknologi >  >> RDS >> Mysql

Forespørg når parameteren er ingen django

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)


  1. hvordan man bruger xmltable i oracle?

  2. Indsæt, hvor der ikke findes - Uden primærnøgle

  3. Hvordan skriver man UPDATE SQL med tabelalias i SQL Server 2008?

  4. dbms_metadata.get_ddl virker ikke