2016-05-03 19 views
-1

は私がフラスコSQLAlchemyの関係クエリ

class UserModel(db.Model): 
    username = db.Column(db.String(80), unique=True) 
... 
    weekday = db.relationship('weekDay', backref="usermodel") 

class weekDay(db.Model): 
    dayname = db.Column(db.String(15)) 
... 
    usermodel_id = db.Column(db.Integer, db.ForeignKey('usermodel.id')) 

一対多の関係を持つ2つのモデルがどのように私は、特定のユーザーに関連する特定の曜日を返すことができています。

次のクエリが実行されますが、正しい結果を返すようにdoesntのように見える -

weekDay.query.filter(UserModel.username == 'tester').filter(weekDay.dayname=='Monday').first() 

編集:私はようやく私のニーズを満たす作業クエリを作成する方法を学びました は、どのケースで私の理解であります誰もがこれを必要とします

上記のモデルを使用して私は子ノードでクエリを開始し、select_fromとjoinステートメントを使用して親に明示的に結合し、最後に私のカスタムフィルタを追加して必要なものを検索しましたed。ここでは、クエリ

weekDay.query.select_from(UserModel).join(UserModel.weekday).filter(UserModel.username == "username_goes_here").filter(weekDay.dayname=="dayname_goes_here").first() 
+0

http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#querying-with-joins – davidism

答えて

0

は、あなたがこのユーザに関連付ける曜日を取得したい場合は、ID 5を持つユーザーを持っていると仮定しましょうされています day=weekDay.query.filter_by(usermodel_id=5).first() day.daynameはあなたにそのユーザーと曜日名の仲間を与えます。 それを持っている場合

+0

もう一つのレベルのフィルタリングを追加したいと思います。このクエリは、ユーザーID5の最初の曜日の要素を返します。ユーザーID5の特定の曜日要素を検索できるようにしたい – Zee18

関連する問題