SqlAlchemy - Filtering by Relationship Attribute
Good news for you: I recently made package that gives you filtering/sorting with "magical" strings as in Django, so you can now write something like
Patient.where(mother___phenoscore=10)
It's a lot shorter, especially for complex filters, say,
Comment.where(post___public=True, post___user___name__like='Bi%')
Hope you will enjoy this package
https://github.com/absent1706/sqlalchemy-mixins#django-like-queries
You have to query the relationsip with join
You will get the example from this Self-Referential Query Strategies
Use method has()
of relationship (more readable):
patients = Patient.query.filter(Patient.mother.has(phenoscore=10))
or join (usually faster):
patients = Patient.query.join(Patient.mother, aliased=True)\
.filter_by(phenoscore=10)