一个SportsClass
有许多Courses
。我只希望能得到现有的课程
我尝试了以下方法:
sports_classes = db.session.query(SportsClass).join(Course).filter((SportsClass.description.contains(query))|(SportsClass.name.contains(query)))
sports_classes = sports_classes.filter((Course.bookable == "bookable") | (Course.bookable == "waitingList"))
但是,该查询返回的结果是(转换为json并简化):
[
"description": "description",
"courses": [
{
"name": "Name",
"bookable": "waitingList",
},
{
"name": "Keine Angaben",
"bookable": "canceled",
}
],
}
]
为什么取消的课程也在结果集中?我怎样才能得到每节课的可用课程
将连接/筛选与加载相关对象混淆。您当前的查询正在筛选
SportsClass
,以确保其课程中至少有一个是'bookable'
或'waitingList'
。但是,这并不影响关系加载的内容,关系与加载查询结果是分开处理的相反,您可能希望第二个关系只显示未取消的类。然后将该关系的内容放在JSON输出中,而不是放在“full”关系中
(我在猜测您的模型定义,但关键部分是在最后定义并使用与
Course
的额外关系。)相关问题 更多 >
编程相关推荐