REST framework:排序过滤器的使用

对于列表数据,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查看

 

posted @ 2024-08-24 11:40  未来可期_Durant  阅读(57)  评论(0)    收藏  举报