2012-04-02 12 views
4

sqlalchemyでPythonフレームワークフラスコを使用しています。このような多くの人がFlask-SQLAlchemyを使用して、実行された代わりにraw sqlを返します。

マイ多対多のルックス:今

collections_questions = db.Table('collections_questions', 
     db.Column('question_id',db.Integer,db.ForeignKey('question.id')), 
     db.Column('collection_id',db.Integer,db.ForeignKey('collection.id')) 
) 
class Collection(db.Model): 
    id = db.Column(db.Integer,primary_key=True) 
    title = db.Column(db.String) 
    lang = db.Column(db.Integer) 
    questions = db.relationship('Question',secondary=collections_questions,backref=db.backref('collections'),lazy='dynamic') 
    def __init__(self,title,lang=0): 
     self.title = title 
     self.lang = lang 

class Question(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    title = db.Column(db.String) 
    question = db.Column(db.String) 
    lang = db.Column(db.Integer) 
    type = db.Column(db.Integer) 

    def __init__(self,title,question,lang=0,type=0): 
     self.title = title 
     self.question = question 
     self.lang = lang 
     self.type = type 

私は

collection = db.session.query(Collection).get(1) 

collection.questionsを行う場合には、その代わりに、次のクエリを返し、質問のリストを返しません。

SELECT question.id AS question_id, question.title AS question_title, question.question AS question_question, question.lang AS question_lang, question.type AS question_type 
FROM question, collections_questions 
WHERE :param_1 = collections_questions.collection_id AND question.id = collections_questions.question_id 

どのようなヘルプも非常に感謝しています!

おかげ

答えて

7

collection.questionsは、Queryオブジェクトであるので、あなたは、怠惰= "ダイナミック" を使用しています。 SQLを発行してコンテンツを取得するには、繰り返し処理する必要があります。

list(collection.questions) 
+0

ahaaa! Thanskたくさん! – Ludvig

関連する問題