当前位置: 首页 > news >正文

django drf 过滤器

排序

代码:

from rest_framework.generics import ListAPIView
from rest_framework.filters import OrderingFilterclass TestListAPIView(ListAPIView):queryset = models.Course.objects.filter(is_delete=False).all()serializer_class = serializers.TestModelSerializer# 配置过滤器类filter_backends = [OrderingFilter,]# 参与排序的字段: ordering=-score, idordering_fields = ['id', 'score']

前端请求:

http://127.0.0.1:8000/api/test?ordering=-score,id

群查搜索过滤器

代码:

from rest_framework.generics import ListAPIView
# SearchFilter搜索过滤器
from rest_framework.filters import SearchFilterclass TestListAPIView(ListAPIView):queryset = models.Course.objects.filter(is_delete=False).all()serializer_class = serializers.FreeCourseModelSerializer# 配置搜索过滤器类filter_backends = [SearchFilter]# 参与搜索的字段: search = liuliuliu (意思是name、status、create_by字段中带liuliuliu就可以了)search_fields = ['name', 'status', 'create_by']

前端请求:

http://127.0.0.1:8000/api/test?search=liuliuliu

自定义过滤器

自定义过滤器代码:

from rest_framework.filters import BaseFilterBackendclass MyFilter(BaseFilterBackend):def filter_queryset(self, request, queryset, view):# 例如:获取前端想要的数据条数limit = request.query_params.get('limit')try:return queryset[:int(limit)]except:return queryset

视图代码:

from rest_framework.generics import ListAPIView
from rest_framework.filters import OrderingFilterclass TestListAPIView(ListAPIView):queryset = models.Course.objects.filter(is_delete=False).all()serializer_class = serializers.FreeCourseModelSerializer# 配置过滤器类, 自定义过滤器类可与自带的共用filter_backends = [OrderingFilter, MyFilter]  # MyFilter为自定义过滤器# 参与排序的字段: ordering=-score,idordering_fields = ['id', 'score']

前端请求:

http://127.0.0.1:8000/api/test?limit=5

相关文章:

  • 字符编码发展史4 — Unicode与UTF-8
  • 2024 CSP 游记
  • 用Flutter几年了,Flutter每个版本有什么区别?
  • 数据结构与算法——Java实现 20.习题——二叉树层序遍历
  • Iceberg 基本操作和快速入门
  • Linux中的tr命令详解
  • C#进阶-读写Excel常用框架及其使用方式
  • STM32嵌入式编程学习到提高:【5】delay函数
  • 【C++】托管类和托管函数
  • jenkins分布式构建
  • C高级(Day21)
  • XPath基础知识点讲解——用于在XML中查找信息的语言
  • [vulnhub] Jarbas-Jenkins
  • numpy is not available
  • 982. 按位与为零的三元组
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 30天自制操作系统-2
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Invalidate和postInvalidate的区别
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript HTML DOM
  • javascript面向对象之创建对象
  • Java基本数据类型之Number
  • JWT究竟是什么呢?
  • 初识 beanstalkd
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 微信小程序填坑清单
  • 为视图添加丝滑的水波纹
  • 小程序 setData 学问多
  • 小程序测试方案初探
  • 小试R空间处理新库sf
  • 06-01 点餐小程序前台界面搭建
  • 白色的风信子
  • #Linux(Source Insight安装及工程建立)
  • %check_box% in rails :coditions={:has_many , :through}
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (差分)胡桃爱原石
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (六)软件测试分工
  • (十)c52学习之旅-定时器实验
  • (一)Dubbo快速入门、介绍、使用
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • *Django中的Ajax 纯js的书写样式1
  • .form文件_一篇文章学会文件上传
  • .NET C# 使用GDAL读取FileGDB要素类
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net core 6 集成和使用 mongodb
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .Net Core 微服务之Consul(二)-集群搭建
  • .net 使用ajax控件后如何调用前端脚本
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell