1.過濾下載 pip install django-filter 2.下載后注冊 INSTALLED_APPS=['django_filters',] 3.導入rest_framework from django_filters import rest_framework class DoctorsFilter(rest_framework.FilterSet): authentication_classes = [TokenAuthentication] #開始時間 start_date = rest_framework.DateFilter(field_name='start_date', lookup_expr='gte') #結束時間 end_date = rest_framework.DateFilter(field_name='end_date', lookup_expr='lte') 4.在類中的使用 from django_filters.rest_framework import DjangoFilterBackend from rest_framework.viewsets import ModelViewSet
class DoctorsViewSet(ModelViewSet): filter_backends = [DjangoFilterBackend] #過濾其他的字段 filter_fields = ('id', 'patient', 'doc_type',)
#指向要過濾的類 filter_class = DoctorsFilter
2.排序
#1.導入OrderingFilter from rest_framework.filters import OrderingFilter #2.在類中的使用 class CarsModelViewSet(ModelViewSet): queryset =models的類 serializer_class=序列化組件
filter_backends = [OrderingFilter]
#/api/cars/?ordering=-id 倒序
#/api/cars/?ordering=id 正序 ordering_fields = ('id', )