No tengo mucha experiencia con SQLAlchemy y tengo un problema que no puedo resolver. Intenté buscar y probé mucho código. Esta es mi clase (reducida al código más significativo):
class Patient(Base):
__tablename__ = 'patients'
id = Column(Integer, primary_key=True, nullable=False)
mother_id = Column(Integer, ForeignKey('patients.id'), index=True)
mother = relationship('Patient', primaryjoin='Patient.id==Patient.mother_id', remote_side='Patient.id', uselist=False)
phenoscore = Column(Float)
y me gustaría consultar a todos los pacientes, cuyo fenoscore de la madre es (por ejemplo) == 10
Como dije, probé mucho código, pero no lo entiendo. La solución lógica, en mi opinión, sería
patients = Patient.query.filter(Patient.mother.phenoscore == 10)
porque puede acceder .mother.phenoscore
a cada elemento al generar, pero este código no lo hace.
¿Existe una posibilidad (directa) de filtrar por un atributo de una relación (sin escribir la declaración SQL, o una declaración de unión adicional), necesito este tipo de filtro más de una vez.
Incluso si no hay una solución fácil, estoy feliz de obtener todas las respuestas.