>: pip install django-filter
INSTALLED_APPS = [
# 列表过滤模块
'django_filters',
]
from django_filters.rest_framework import DjangoFilterBackend
class CourseAPIView(ListAPIView):
"""课程列表接口"""
queryset = Course.objects.filter(is_delete=False, is_show=True).order_by("-orders")
serializer_class = CourseSerializer
# 条件过滤:DjangoFilterBackend
filter_backends = [DjangoFilterBackend]
# 过滤字段
filter_fields = ['course_category', ]
http://127.0.0.1:8000/course/?course_category=1
from rest_framework.filters import OrderingFilter
from .pagination import CoursePageNumberPagination
class CourseAPIView(ListAPIView):
"""课程列表接口"""
queryset = Course.objects.filter(is_delete=False, is_show=True).order_by("-orders")
serializer_class = CourseSerializer
# 排序过滤:OrderingFilter
filter_backends = [OrderingFilter]
# 过滤字段
ordering_fields = ['id', 'students', 'price']
http://127.0.0.1:8000/course/?ordering=price
http://127.0.0.1:8000/course/?ordering=-price
原文:https://www.cnblogs.com/king-home/p/11235316.html