Having following models:
class Question(db.Model):
id = db.Column(db.Integer(), primary_key=True)
title = db.Column(db.String(125))
text = db.Column(db.Text())
answers = db.relationship('Answer', backref='for_question')
class Answer(db.Model):
id = db.Column(db.Integer(), primary_key=True)
text = db.Column(db.Text())
question_id = db.Column(db.Integer(), db.ForeignKey('question.id'))
How can I perform select_related in SQLAlchemy/Flask?
I've found in documentation that I can make something like
session.query(Question).options(joinedload(Question.aswers))
But I need first to get specific question by id and then select related to it
So I need something like this
Question.query.get(5).select_related()
Ho can I do this?
answers = Question.query.options(joinedload(Question.answers)).get(5).answers
The expression Question.query.options(joinedload(Question.answers)).get(5)
issues the query with a join and evaluates to a Question
instance. Accessing answers
attribute does not issue any queries.
You could also do it more explicitly
answers = Answer.query.filter_by(question_id=5).all()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With