Nie mam dużego doświadczenia z SQLAlchemy i mam problem, którego nie mogę rozwiązać. Próbowałem szukać i próbowałem dużo kodu. To jest moja klasa (zredukowana do najbardziej znaczącego kodu):
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)
i chciałbym zapytać wszystkich pacjentów, których fenoscore matki jest (na przykład) == 10
Jak powiedziano, próbowałem dużo kodu, ale go nie rozumiem. Moim zdaniem logicznym rozwiązaniem byłoby
patients = Patient.query.filter(Patient.mother.phenoscore == 10)
ponieważ możesz uzyskać dostęp .mother.phenoscore
do każdego elementu podczas wyprowadzania, ale ten kod tego nie robi.
Czy istnieje (bezpośrednia) możliwość filtrowania według atrybutu relacji (bez pisania instrukcji SQL lub dodatkowej instrukcji łączenia), potrzebuję tego rodzaju filtra więcej niż jeden raz.
Nawet jeśli nie ma prostego rozwiązania, z przyjemnością otrzymuję wszystkie odpowiedzi.