728x90
Django Rest Framework Filter
- HTTP GET Request시 쿼리 스트링을 사용하여 검색하는 일반적인 웹 처리방식을 사용할 수 있습니다.
- Django Rest Framework에서 제공하는 클래스 형태의 필터 구조를 사용합니다.
사용방법
- Django RestFramework의 FilterSet 클래스를 상속받아 filter 클래스를 생성합니다.
- 컬럼을 선언한 내용에 따라 컬럼 1개가 쿼리 스트링 1개로 1:1 매칭 됩니다.
- 만약 여러 컬럼에 걸친 조건으로 처리하고 싶은 경우 method를 사용할 수 있습니다.
- 클래스 내 선언하지 않은 쿼리 스트링은 사용할 수 없습니다.
import django_filters
from rest_framework import filters
# FilterSet 상속
class MemberFilter(filters.FilterSet):
"""
회원 정보 Filter
"""
# 필터로 사용 할 컬럼별로 선언, 검색조건키워드=데이터타입(옵션)
# 쿼리 스트링의 키 부분이 member_name가 되고, field_name은 실제 모델클래스의 컬럼 명
# member_name은 문자형 필터이고 contains라는 키워드를 통해 해당 값을 포함하는 문자 검색 ex) member_name like '%tom%'
member_name = django_filters.CharFilter(field_name='member_name', lookup_expr='contains')
class Meta:
# 연관 모델 맵핑
model = Member
# 사용 할 컬럼들
fields = ('member_name')
# ViewSet
class MemberViewSet(ModelViewSet):
filter_backends = [filters.DjangoFilterBackend]
filterset_class = MemberFilter
728x90
'Python > Django' 카테고리의 다른 글
Django Rest Framework ViewSet (0) | 2022.09.28 |
---|---|
Django ORM (2) | 2022.09.23 |
Django Rest Framework Excel Renderer 클래스 (0) | 2017.08.02 |
Django ORM기반 ERD 생성 (0) | 2017.07.06 |