ABOUT ME

Today
Yesterday
Total
  • [Django] 내가 작성한 글만 Filtering
    공부/Django 2020. 8. 5. 21:47

    기존 views.py

    from rest_framework import viewsets
    from .models import Essay
    from .serializers import EssaySerializer
    
    class PostViewSet(viewsets.ModelViewSet):
    
        queryset = Essay.objects.all()
        serializer_class = EssaySerializer
    
        def perform_create(self, serializer):
            serializer.save(author=self.request.user)

    현재 로그인하면 모든 essay 모델이 보여집니다.

    get_queryset을 오버라이딩

    rest_framework의 generics.py 내부코드를 살펴봅시다!

    def get_queryset(self):
            assert self.queryset is not None, (
                "'%s' should either include a `queryset` attribute, "
                "or override the `get_queryset()` method."
                % self.__class__.__name__
            )
    
            queryset = self.queryset
            if isinstance(queryset, QuerySet):
                # Ensure queryset is re-evaluated on each request.
                queryset = queryset.all()
            return queryset

    queryset = queryset.all()
    기존 설정은 모든 쿼리셋을 가져오도록 되어있습니다.
    이 부분을 오버라이딩해서 filtering을 구현하겠습니다.

    내가 작성한 글만 보이는 필터링을 구현한 views.py

     

    '공부 > Django' 카테고리의 다른 글

    자주 사용되는! HTTP 상태 코드  (0) 2020.11.13
    [Django] 작성한 글의 Search 기능 구현  (0) 2020.08.05
    [Django] DRF 시작하기  (0) 2020.08.05
    [Django] Json  (0) 2020.08.04
    [Django] REST framework  (0) 2020.08.04
Designed by Tistory.