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.phenoscorea 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.