0

私のコードのいくつか:

u = User.query.filter_by(username=requested_username.lower()).first()


teamie = Team.query.filter_by(name=requested_team)
team = teamie.filter_by(user_id=u.id).first()

^私は何が間違っているのですか?(機能していませんが、理由はわかりません。また、2つのチーム関連の行を1つの行に結合する方法はありますか?

4

1 に答える 1

0

それはあなたのsqlalchemyセットアップの残りのいくつかに依存します、しかし私があなたのセットアップで推測するならば、私はこれがトリックをするかもしれないと思います:

u = User.filter_by(User.username==requested_username.lower()).first()

teamie = Team.filter_by(Team.name==requested_team)\
             .filter_by(Team.user_id==u.id).first()

説明は次のとおりです。まず、filter_byステートメントで、「=」だけでなく「==」の二重等号が必要です。また、実際にはモデル自体ではなくクエリメソッドを持つセッションオブジェクトであるため、次のように使用しない限りクエリは必要ありませんでした(セッションオブジェクトは実際にはセッションと呼ばれていると思います)。

u = session.query(User).filter_by(User.username==requested_username.lower()).first()

teamie = session.query(Team).filter_by(Team.name==requested_team)\
                            .filter_by(Team.user_id==u.id).first()

最後に、ほとんどの場合、フィルターステートメントにmodel.column構文が必要です。それがいくつかの光を当てることを願っています。

于 2012-12-27T02:30:21.560 に答える