对于列表数据,REST framework提供了OrderingFilter过滤器来帮助我们快速指明数据按照指定字段进行排序
1、在setting中的REST_FRAMEWORK
添加配置
'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查看
标签:ordering,指定,REST,framework,过滤器,排序 From: https://www.cnblogs.com/Durant0420/p/18377575