카테고리 없음

Django 글 조회 및 검색

rlarudals 2024. 11. 22. 02:00
# 블로그 글 조회, 검색
class BlogAPIView(APIView):
    serializer_class = BlogSerializer
    permission_classes = [AllowAny] # 로그인 불필요
    # 조회
    def get_queryset(self):
        return Blog.objects.all().order_by('-created_at')
   
    # 검색
    def get(self, request):
        # 데이터 베이스에서 조회
        queryset = self.get_queryset()

        # 검색 쿼리 파라미터
        search_query = self.request.query_params.get('search', None) # 검색어 가져오기
        filter_by = self.request.query_params.get('filter', 'title')  # 기본값: 제목 검색

        if search_query:
            # icontains 대소문자 구분 없이
            if filter_by == 'title':
                queryset = queryset.filter(Q(title__icontains=search_query))
            elif filter_by == 'content':
                queryset = queryset.filter(Q(content__icontains=search_query))
        # 직렬화
        serializer = BlogSerializer(queryset, many=True)
        return Response(serializer.data)

 

솔직히 검색은 한번도 안해봐서 팀원들이 만들어준 코드를 보고 해봤다