From 7d51b6b0fd5ab61baca4406ad3925d6f8ea5fcd4 Mon Sep 17 00:00:00 2001 From: Timur Enikeev Date: Sat, 9 Nov 2024 19:59:18 -0500 Subject: [PATCH] Fix subject search --- rating_api/routes/lecturer.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/rating_api/routes/lecturer.py b/rating_api/routes/lecturer.py index 3be74fb..99c0cab 100644 --- a/rating_api/routes/lecturer.py +++ b/rating_api/routes/lecturer.py @@ -101,13 +101,11 @@ async def get_lecturers( `name` Поле для ФИО. Если передано `name` - возвращает всех преподователей, для которых нашлись совпадения с переданной строкой """ - lecturers = ( - Lecturer.query(session=db.session) - .join(Lecturer.comments) - .filter(Lecturer.search_by_name(name)) - .filter(Lecturer.search_by_subject(subject)) - .all() - ) + lecturers_query = Lecturer.query(session=db.session) + if subject: + lecturers_query = lecturers_query.join(Lecturer.comments).filter(Lecturer.search_by_subject(subject)) + lecturers_query = lecturers_query.filter(Lecturer.search_by_name(name)) + lecturers = lecturers_query.all() if not lecturers: raise ObjectNotFound(Lecturer, 'all') result = LecturerGetAll(limit=limit, offset=offset, total=len(lecturers))