2015-01-16 2 views
4

갖는 다음 모델 :플라스크/SQLAlchemy에서 select_related()하는 방법?

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')) 
내가 SQLAlchemy의/플라스크에 select_related 수행 할 수있는 방법

?

내가 뭔가 같은

session.query(Question).options(joinedload(Question.aswers))

을 할 수 있습니다 문서에서 발견하지만 다음 ID로 특정 질문을 얻고 먼저 필요 한가 이와 관련된 선택

그래서 내가 좋아하는 뭔가가 필요 이

Question.query.get(5).select_related() 

할 수 있습니까?

답변

3
answers = Question.query.options(joinedload(Question.answers)).get(5).answers 

표현 Question.query.options(joinedload(Question.answers)).get(5) 문제에 가입하고 Question 예로 평가와 질의. answers 속성에 액세스해도 쿼리가 실행되지 않습니다.

또한

answers = Answer.query.filter_by(question_id=5).all() 
더 명시 적으로 할 수있는