YEOJIN-DEV

TIL - 180810

August 10, 2018 | 1 Minute Read

8월 10일 TIL : 배민찬 카피 프로젝트, 패스트캠퍼스 보강

Django REST Framework Filtering

배민찬의 반찬들을 카테고리별로 가져오도록 하기 위해서 쿼리셋을 필터링 해야한다. Django REST Framework Filtering 문서를 보니 get_queryset() 메소드를 구현하면 쉽게 필터링을 할 수 있었다.

class ProductList(generics.ListAPIView):
    serializer_class = ProductSimpleSerializer

    def get_queryset(self):
        queryset = Product.objects.all()
        parent_category = get_object_or_404(
            ParentCategory,
            name=self.request.query_params.get('parent_category', None),
        )
        category = get_object_or_404(
            Category,
            parent_category=parent_category,
            name=self.request.query_params.get('category', None),
        )
        if category is not None:
            queryset = queryset.filter(category=category)
        return queryset

기억해야 할 점은 2가지다.

  1. request는 self 인스턴스에 담겨 있다.
  2. ORM을 사용할 때 예외처리를 해야만 한다. 즉 ORM의 objects.get() 대신 get_object_or_404() 메소드를 사용하면 된다.

sentry

sentry 설치법을 배웠다. 문서대로 하면 되기 때문에 특별한 내용은 없었다. 그런데 EB, EC2 환경에서 오류가 나는 것 같아 찾아보니 현재 이슈로 등록되어 있었다. 이 링크를 보면서 경과를 지켜보자.