sql >> Databasteknik >  >> RDS >> Mysql

Fråga när parametern är ingen django

Jag vet inte om jag får din fråga, men

Model.objects.filter(x=x, y__isnull = False, z=z)

ger dig frågeuppsättningen, där y kolumnen är icke-null (IS NOT NULL ).

Här är relevant dokumentation.

EDIT:Kontrollera om y är None och bygg din frågeuppsättning dynamiskt:

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)
...

Om det finns för många argument att ta itu med kan du använda något i stil med detta; antar att x , y , z lagras i en ordbok 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. Släpps också indexen om du släpper en tabell i MySQL?

  2. Arkitekturimplementering och design för ett meddelandesystem som använder socket.io node.js och inkommande meddelanden

  3. Hur fungerar Subquery i select-satsen i Oracle

  4. Anslutningssträngparametrar för textfilkällor