对于列表数据,REST framework提供了OrderingFilter过滤器来帮助我们快速指明数据按照指定字段进行排序
'DEFAULT_FILTER_BACKENDS': (# 这个是指定使用django_filters中的过滤器来进行过滤'django_filters.rest_framework.DjangoFilterBackend',# 这个是指定使用DRF自带的排序过滤器来进行数据排序'rest_framework.filters.OrderingFilter' ),
2、在视图类中指定排序可选字段:ordering_fields:
REST framework会在请求的查询字符串参数中检查是否包含了ordering参数,如果包含了ordering参数,则按照ordering参数指明的排序字段对数据集进行排序。
class UserView(ModelViewSet):# 指定模型类查询集queryset = UserInfo.objects.all()# 指定序列化器类serializer_class = UserInfoSerializer# 直接指定过滤字段# filterset_fields = ('name', 'email',)# 指定过滤器类filterset_class = UserInfoFilter# 指定排序的字段ordering_fields = ('age', 'id')
接口文档
postman查看