FrameWork/Django

DRF에서 ModelViewset을 이용하여 API을 작성할 때, 쿼리 스트링 사용 방법

jheaon 2023. 8. 18. 19:22

 

 

Django Rest Framework에서 ModelViewset을 이용하여 API을 작성할 때, 쿼리 스트링을 사용하기 위해서는 django-filter 라이브러리가 필요하다.

 

django-filter Docs : https://www.django-rest-framework.org/api-guide/filtering/#djangofilterbackend

 

Filtering - Django REST framework

 

www.django-rest-framework.org

 

일단 위의 공식문서를 따라서 작성하자면 아래와 같다. 

 

 🖥️ settings.py

INSTALLED_APPS = [
    ...
    'django_filters',
    ...
]

REST_FRAMEWORK = {
    'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']
}

 

🖥️ views.py

from django_filters.rest_framework import DjangoFilterBackend

class ProductList(generics.ListAPIView):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer
    filter_backends = [DjangoFilterBackend]
    filterset_fields = ['category', 'in_stock']

 

이렇게 설정 해준 뒤, filterset_fields에 있는 속성에 맞게 쿼리 파라미터를 사용하여 GET 메소드를 요청하게 되면 그에 맞는 데이터를 반환해준다. 필터의 종류는 오더링, 서치 등등이 있으므로 공식문서를 보면서 응용하면 쉽게 API을 제작할 수 있다. 

'FrameWork/Django'의 다른글

  • 현재글 DRF에서 ModelViewset을 이용하여 API을 작성할 때, 쿼리 스트링 사용 방법

관련글