sqlalchemy-filters
sqlalchemy-filters copied to clipboard
Filter joined table
Hola Julio, primero que nada muchas gracias por el package, estoy creando una Api Rest con flask y me está siendo super util. Te queria consultar un problema que estoy teniendo al filtrar un modelo relacionado a otro modelo, es una relación de uno a muchos que tengo entre pacientes y consultas, y quiero obtener, por ejemplo, un paciente con todas sus consultas menos una (que seria la del id 11) pero no está funcionando, solo funciona el filtro en el modelo Paciente:
def get_paciente_filtering_consultas(id):
query = db.session.query(Paciente)
filter_spec = [
{'model': 'Paciente', 'field': 'id', 'op': '==', 'value': id},
{'model': 'PacienteConsulta', 'field': 'id', 'op': '!=', 'value': 11},
]
filtered_query = apply_filters(query, filter_spec)
return filtered_query.first()
la relación en el modelo Paciente está definida de la siguiente forma:
class Paciente(db.Model):
""" Paciente Model """
__tablename__ = "paciente"
consultas = db.relationship('PacienteConsulta', lazy='joined',order_by="desc(PacienteConsulta.created_at)")
El filtro del id es solo de prueba, en realidad mi idea es filtrar consultas por fecha, pero al probar esto me di cuenta que tampoco funcionaba.
Muchas gracias!