Skip to content

Filter joined table #50

Open
Open
@mateo2181

Description

@mateo2181

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions