我的一些代码:
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()
^我做错了什么?(它不起作用 - 但我不知道为什么还有将两条与团队相关的线路合并为一条线路?
我的一些代码:
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()
^我做错了什么?(它不起作用 - 但我不知道为什么还有将两条与团队相关的线路合并为一条线路?
这取决于你的 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 语法。希望能有所启发。