Não tenho muita experiência com SQLAlchemy e estou com um problema que não consigo resolver. Tentei pesquisar e tentei muitos códigos. Esta é minha classe (reduzida ao código mais 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)
e gostaria de consultar todos os pacientes, cujo phenoscore da mãe é (por exemplo) == 10
Como disse, tentei muitos códigos, mas não entendi. A solução lógica, a meu ver, seria
patients = Patient.query.filter(Patient.mother.phenoscore == 10)
porque, você pode acessar .mother.phenoscore
para cada elemento durante a saída, mas, este código não faz isso.
Existe a possibilidade (direta) de filtrar por um atributo de um relacionamento (sem escrever a instrução SQL ou uma instrução extra de junção), preciso desse tipo de filtro mais de uma vez.
Mesmo que não haja uma solução fácil, fico feliz em obter todas as respostas.