Je n'ai pas beaucoup d'expérience avec SQLAlchemy et j'ai un problème que je n'arrive pas à résoudre. J'ai essayé de faire des recherches et j'ai essayé beaucoup de code. Voici ma classe (réduite au code le plus significatif) :
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)
et j'aimerais interroger tous les patients dont le phénoscore de la mère est (par exemple) == 10
Comme je l'ai dit, j'ai essayé beaucoup de codes, mais je ne comprends pas. La solution logique, à mes yeux, serait la suivante
patients = Patient.query.filter(Patient.mother.phenoscore == 10)
parce que vous pouvez accéder à .mother.phenoscore
pour chaque élément lors de la sortie, mais ce code ne le fait pas.
Existe-t-il une possibilité (directe) de filtrer par un attribut d'une relation (sans écrire la déclaration SQL, ou une déclaration de jointure supplémentaire), j'ai besoin de ce type de filtre plus d'une fois.
Même s'il n'y a pas de solution facile, je suis heureux d'obtenir toutes les réponses.