Django(67)drf搜索过滤和排序过滤「建议收藏」

Django(67)drf搜索过滤和排序过滤「建议收藏」前言当我们需要对后台的数据进行过滤的时候,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(67)drf搜索过滤和排序过滤「建议收藏」
 

排序过滤

跟搜索过滤一样,只需要配置局部变量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(67)drf搜索过滤和排序过滤「建议收藏」

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164874.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 关于ContentPlaceHolder与Content控件

    关于ContentPlaceHolder与Content控件定义:ContentPlaceHolder控件:在ASP.NET母版页中定义内容区域。Content控件:保存文本、标记和服务器控件以呈现给母版页中的ContentPlaceHolder控件。两者关系:ContentPlaceHolder控件在母版页中定义相对内容区域,并呈现在内容页中找到的相关的Content控件的所有文本、标记和服务器控件。

  • HDFS分布式文件存储系统详解

    HDFS分布式文件存储系统详解HDFS简介一、HDFS:HadoopDistributedFileSystem          1. 一个分布式文件系统           2. 基于流数据模式访问和处理超大文件的需求而开发的          3. 适合应用在大规模数据集上     优点:                1.处理超大文件                   能用来存储管理PB级的数据 …

  • 诺基亚S60手机c盘、d盘、e盘、z盘的作用

    诺基亚S60手机c盘、d盘、e盘、z盘的作用诺基亚S60手机c盘、d盘、e盘、z盘里文件夹的用途详细诠释
        一、【C盘】
      手机的C盘如同Windows的C盘,是用来放置SymbianOS的地方,所以我们需要给操作系统预留足够的空间(比如用来存放软件运行时生成的临时文件)。对于已扩充了MMC卡的机器,建议把应用软件和游戏都尽量安装到MMC卡上。
      手机内存和常驻内存的软件有关,如输入法、主题背景开机后就会常驻内存,正在运行的软件和游戏也会占用内存,增加动态内存的办法就是减少常驻内存的程序,用任务管理软件

  • Kafka简明教程「建议收藏」

    Kafka简明教程「建议收藏」作者:柳树之www.jianshu.com/p/7b77723d4f96Kafka是啥?用Kafka官方的话来说就是:Kafkaisusedforbuildingreal-timedatapipelinesandstreamingapps.Itishorizontallyscalable,fault-tolerant,wickedfast,an…

    2022年10月17日
  • linux防火墙配置命令_linux防火墙规则设置

    linux防火墙配置命令_linux防火墙规则设置一、实验要求1.不允许外网不经过防火墙与内网进行通信2.允许内网用户通过防火墙访问外部HTTP、HTTPS服务器3.允许内网用户通过防火墙访问外部FTP服务器二、实验环境1.使用两台Linux虚拟机和一台win10物理机。一台Linux主机作为网关(需要双网卡),另一台Linux主机作为内网,使用物理机作为外网。2.我使用的是RedHat6.5版本。RedHat7及…

  • gFortran的使用

    gFortran的使用Fortran编程中相关文件后缀.a静态库(archive).f,.for,.FOR.ftn*,.f90*,.f95*,.f03*Fortran源代码(不需编译预处理).F,.fpp,.FPP.FTN*,.F90*,.F95*,.F03*Fortran源代码(需要编译预处理).rFortran源代码(需要…

    2022年10月30日

发表回复

您的电子邮箱地址不会被公开。

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