Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta quando o parâmetro não é nenhum django


Eu não sei, se eu entendi sua pergunta, mas
Model.objects.filter(x=x, y__isnull = False, z=z)

fornece o conjunto de consultas, onde o y coluna não é nula (IS NOT NULL ).

Aqui está a documentação pertinente.

EDIT:Verifique se y é Nenhum e construa seu conjunto de consultas dinamicamente:
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)
...

Se houver muitos argumentos para lidar, você pode usar algo assim; assumindo que x , y , z são armazenados em um dicionário 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)