Je n'ai pas beaucoup d'expérience avec SQLAlchemy et j'ai un problème que je ne peux pas résoudre. J'ai essayé de chercher et j'ai essayé beaucoup de code. Ceci est 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 je voudrais interroger tous les patients, dont le phénoscore de la mère est (par exemple) == 10
Comme dit, j'ai essayé beaucoup de code, mais je ne comprends pas. La solution logique, à mes yeux, serait
patients = Patient.query.filter(Patient.mother.phenoscore == 10)
car, vous pouvez accéder .mother.phenoscore
à chaque élément lors de la sortie, mais ce code ne le fait pas.
Y a-t-il une possibilité (directe) de filtrer par un attribut d'une relation (sans écrire l'instruction 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.