sql >> Base de Datos >  >> RDS >> PostgreSQL

Eliminar objetos de la consulta si Ninguno o Nulo

Puedes crear un dict con los datos del filtro:

filter_data = {'horsepower': horsepower, 'voltage': voltage, 'rpm': rpm}

Luego crea otro dict con solo las claves cuyos valores existen:

filter_data = {key: value for (key, value) in filter_data.items()
               if value}

Y finalmente use este dict como kwargs para su consulta:

results = Motor.query.filter_by(**filter_data).all()