From 1bce3f9bcfe83c74b33bfac54c6a4220c0cf1c71 Mon Sep 17 00:00:00 2001 From: Joyriver-laptop Date: Wed, 14 Aug 2024 20:01:49 +0900 Subject: [PATCH] =?UTF-8?q?Feat:=20=EA=B2=8C=EC=8B=9C=EA=B8=80=EC=9D=98=20?= =?UTF-8?q?=EC=A0=9C=EB=AA=A9,=20=EB=82=B4=EC=9A=A9,=20=ED=95=99=EC=88=98?= =?UTF-8?q?=EB=B2=88=ED=98=B8=EB=A1=9C=20=EA=B2=80=EC=83=89=ED=95=A0=20?= =?UTF-8?q?=EB=95=8C=20=EC=9D=BC=EB=B6=80=20=ED=8F=AC=ED=95=A8=EB=90=9C=20?= =?UTF-8?q?=EB=82=B4=EC=9A=A9=EC=9C=BC=EB=A1=9C=EB=8F=84=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=ED=95=A0=20=EC=88=98=20=EC=9E=88=EB=8A=94=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KUA/course/views.py | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/KUA/course/views.py b/KUA/course/views.py index 2b6c6d9..094eb9a 100644 --- a/KUA/course/views.py +++ b/KUA/course/views.py @@ -199,18 +199,22 @@ def get_queryset(self): course_id = self.request.query_params.get('course_id', None) student_id = self.request.query_params.get('student_id', None) title = self.request.query_params.get('title', None) + content = self.request.query_params.get('content', None) if course_index is not None: queryset = queryset.filter(course_fk_id=course_index) if course_id is not None: - queryset = queryset.filter(course_fk__course_id=course_id) + queryset = queryset.filter(course_fk__course_id__icontains=course_id) if student_id is not None: queryset = queryset.filter(student_id=student_id) if title is not None: queryset = queryset.filter(title__icontains=title) + + if content is not None: + queryset = queryset.filter(content__icontains=content) return queryset @@ -225,14 +229,27 @@ def get_queryset(self): openapi.Parameter('student_id', openapi.IN_QUERY, description="학생 ID로 필터링", type=openapi.TYPE_INTEGER), openapi.Parameter('title', openapi.IN_QUERY, - description="게시글 제목으로 필터링", type=openapi.TYPE_STRING), + description="게시글 제목으로 필터링합니다. 일부 포함된 게시글도 보여줍니다.", type=openapi.TYPE_STRING), + openapi.Parameter('content', openapi.IN_QUERY, + description="게시글 내용으로 필터링합니다. 일부 포함된 게시글 보여줍니다.", type=openapi.TYPE_STRING), ], responses={200: PostMinimalSerializer(many=True)} ) def list(self, request, *args, **kwargs): queryset = self.get_queryset() serializer = PostMinimalSerializer(queryset, many=True) - return Response(serializer.data) + results = serializer.data + + query_params = request.query_params.dict() + + for result in results: + post_instance = Post.objects.get(id=result['id']) + if 'content' in query_params: + result['content'] = post_instance.content + if 'course_id' in query_params: + result['course_id'] = post_instance.course_fk.course_id + + return Response(results) @swagger_auto_schema( operation_summary="게시글 생성 기능 - 완료", @@ -274,7 +291,7 @@ def create(self, request, *args, **kwargs): @swagger_auto_schema( operation_summary="게시글 조회 기능 - 완료", - operation_description="게시글 인덱스로 특정 게시글을 조회합니다.", + operation_description="게시글 인덱스로 특정 게시글의 세부 내용을 조회합니다.", responses={200: PostSerializer} ) def retrieve(self, request, *args, **kwargs):