双数据库查询

时间:2012-12-27 01:00:44

标签: python database sqlalchemy

我的一些代码:

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()

^我做错了什么? (它不起作用 - 但我不知道为什么 无论如何还要将两个与团队相关的线组合成一条线?

1 个答案:

答案 0 :(得分: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语句中,您需要一个双等号" =="不只是" ="。此外,它实际上是具有查询方法的会话对象,而不是模型本身,因此您不需要查询,除非您像这样使用它(我假设您的sesssion对象实际上被调用)会话):

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()

最后,大多数情况下,您需要在filter语句中使用model.column语法。希望能有所启发。

相关问题