django-filters
-
django-filters 를 사용하여 복잡한 환경에서 OrderingFilter 사용하기기술/Django 2021. 9. 24. 19:43
django-filters 를 사용한다면 OrderingFilter 를 FilterSet 쪽에 붙이는 것이 더 직관적이고 편할 수 있습니다. django-filters 라이브러리에서 OrderingFilter 에 대해 간단한 설명이 있지만 조금 더 복잡하게 사용할 필요가 있었기 때문에 어떻게 사용했는지 공유하고자 합니다. 기본 사용법 OrderingFilter 를 한 키로 정의하고 그 안에 fields 속성에 Ordering 에 사용할 필드들을 나열합니다. 위 처럼 작성하면 ?ordering=username,-first_name 와 같이 QueryString 에 포함시킬 수 있습니다. 대부분의 간단한 정렬은 가능하지만, 예외 케이스가 몇개 존재합니다. class UserFilter(FilterSet): ..
-
Django Filters 에서 하나의 Key를 가지고 여러 값 필터하기 ( MultipleFilter )기술/Django 2021. 9. 24. 19:34
django-filters 에서 여러 값을 필터하는 방법으로는 몇가지 있습니다. BaseInFilter 로 key=value1,value2 같은 컴마로 구분하는 필터 MultipleChoiceFilter 로 key=value1&key=value2 같은 키로 구분하는 필터 이 중에서 같은 키로 여러 값을 구분하기 위하여 MultipleChoiceFilter 를 커스텀합니다. 하지만 MultipleChoiceFilter 는 Choice 값이 있어야만하는 에러를 발생하고, 이를 범용성 있게 하고 싶었기 때문에 다른 필터 유틸을 만들게 되었습니다. MultipleFilter MultipleChoiceFilter 가 django-filters 라이브러리에서 제공하는 단 하나뿐인 다중 필터 입니다. 하지만 이름에서..