django filter查询_搜索全局排序方法

django filter查询_搜索全局排序方法前言当我们需要对后台的数据进行过滤的时候,drf有两种,搜索过滤和排序过滤。搜索过滤:比如我们想返回sex=1的,那么我们就可以从所有数据中进行筛选排序过滤:比如我们想对价格进行升序排列,就可以

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

当我们需要对后台的数据进行过滤的时候,drf有两种,搜索过滤和排序过滤。
搜索过滤:比如我们想返回sex=1的,那么我们就可以从所有数据中进行筛选
排序过滤:比如我们想对价格进行升序排列,就可以使用排序过滤
 

搜索过滤

在实际的使用过程中十分简单,只需要在视图类中配置一个全局变量filter_backends,然后在search_fields确定需要通过哪个字段进行筛选

from rest_framework.filters import SearchFilter
class CarView(ListAPIView):
    serializer_class = CarSerializer
    queryset = Car.objects.all()
    # 局部配置过滤类和排序类
    filter_backends = [SearchFilter]
    # SearchFilter过滤类依赖的过滤条件
    search_fields = ['name']

之后我们在访问url地址时,就可以在url后面添加?search="宝马1系",那么我们就会过滤出name=”宝马1系”的数据
django filter查询_搜索全局排序方法
 

排序过滤

跟搜索过滤一样,只需要配置局部变量filter_backends,然后配置ordering_fields来确定通过哪个字段进行排序

from rest_framework.filters import SearchFilter, OrderingFilter
class CarView(ListAPIView):
    serializer_class = CarSerializer
    queryset = Car.objects.all()
    # 局部配置过滤类和排序类
    filter_backends = [SearchFilter, OrderingFilter]
    # SearchFilter过滤类依赖的过滤条件
    search_fields = ['name']
    # 局部配置排序类
    ordering_fields = ['price']

之后我们在访问url地址时,就可以在url后面添加?search="宝马"&ordering="price",那么我们就会过滤出所有宝马系列的车子,并且数据的排序按照车的价格从低到高排序
django filter查询_搜索全局排序方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165756.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月31日 下午3:16
下一篇 2022年7月31日 下午3:16


相关推荐

  • 用 Javascript 生成二维码

    用 Javascript 生成二维码用Javascript生成二维码#javascript#Webdev的#节点#设计大家好????,这将是一篇很短的文章,我将展示如何为JavaScript中的任何内容生成二维码。显然,我不会从头开始实现所有内容,当我们在JavaScript中有大量有用的库时,为什么要这样做。我遇到了这个很棒的轻量级库,或者你可以说一个简单的脚本qrcodejs。它非常易于使用并且也很可靠。执行 下载此zip文件:qrcodejs 提取它。 现在您可以…

    2022年10月18日
    5
  • Java进阶(二十三)java中long类型转换为int类型

    Java进阶(二十三)java中long类型转换为int类型java中long类型转换为int类型由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况:主要以下几种转换方法,供参考:一、强制类型转换[java]longll=300000;intii=(int)ll;二、调用intValue()方法[j

    2022年5月7日
    100
  • Linux下安装Python

    Linux下安装Python目录一 Linux 下安装 Python 二 Linux 下 Python 安装完成后如何使用 pip 命令三 Linux 下 Python 安装完成后如何使用 yum 命令四 Linux 下安装 Anaconda 五 Linux 下使用 anaconda 安装 Keras 一般的 Linux 上都有默认的 Python 版本 CentOS6 5 默认的 Python 版本的 2 6 6 的 因为工作原因 这里需要用到 Python3 6 3 的版本 在这里

    2026年3月20日
    3
  • pycharm 设置字体大小

    pycharm 设置字体大小nbsp Pycharm 是很好的一个 IDE 在 windows 下 和 macOS 下 都能很好的运行 唯一缺点是启动慢 nbsp 默认字体太小 为了保护好眼睛 我们需要把字体调整大一些 nbsp nbsp nbsp 设置字体大小 nbsp nbsp 参考 https www yuque com docs share b9cc51aa df6b 4d73 af5c fc13a0102ca0 nbsp

    2026年3月27日
    2
  • Fragstats 4 软件进行景观分析教程

    Fragstats 4 软件进行景观分析教程0 前言地学相关领域常会用到对土地利用图的景观分析 使用 Fragstats4 的较为普遍 在此分享一点个人使用经验 不足之处还望指出 原创文章忘大家多多支持 转载注明出处 1 软件界面介绍 fragstats4 2 界面可分为 4 部分 工具栏 参数设定区 景观指数选择区和运行状态栏 1 工具栏 创建或打开景观分析任务 因为景观指数很多 但常用的指数较为固定 每次设置较为复杂 配置好的

    2026年3月20日
    3
  • java setscale_BigDecimal.setScale(int newScale, int roundingMode)方法实例「建议收藏」

    java setscale_BigDecimal.setScale(int newScale, int roundingMode)方法实例「建议收藏」java.math.BigDecimal.setScale(intnewScale,introundingMode)返回一个BigDecimal,其精度为指定值,其非精度值乘以或除以此BigDecimal的非精度值除以10,以保持其整体值。如果该精度是减少了操作中,未缩放的值必须被除(而不是乘),并且该值可以被改变。在这里,指定的舍入模式应用到除法。由于BigDecimal对象是不可变的,这…

    2022年10月20日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号