django filter查询_django drf

django filter查询_django 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 filter查询_django 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 filter查询_django drf

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

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

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

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

(0)


相关推荐

  • 升级公告:由社区推动的cBridge 2.0功能迭代升级即将到来

    升级公告:由社区推动的cBridge 2.0功能迭代升级即将到来我们将在北京时间2021年12月3日上午10点推出cBridge2.0的一次功能迭代升级,以满足我们用户和开发者社区提出的一些关键功能需求。此次升级旨在让cBridge2.0更好地为通用的多链dApps和原生资产跨链桥接提供支持。升级期间,cBridge跨链转账服务会暂停约3小时。作为此次升级的一部分,所有LP需要迁移已提供的全部流动性。我们将为LP提供足够的gastoken以支付cBridge2.0目前已支持的链上的全部迁移成本,大家不必担心手续费的问题。迁移可以在升级前…

  • idea激活码到2022_通用破解码

    idea激活码到2022_通用破解码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 阿里druid数据连接池jar包(完整版)[通俗易懂]

    阿里druid数据连接池jar包(完整版)[通俗易懂]Druid(德鲁伊)是阿里巴巴开发的号称为监控而生的数据库连接池,Druid是目前最好的数据库连接池。在功能、性能、扩展性方面,都超过其他数据库连接池,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Druid地址:https://github.com/alibaba/druidDRUID连…

  • [开发者笔记]Odin

    [开发者笔记]Odinhttps://github.com/chkinglee/odin#2020-05-311、elasticsearch搭建与启动2、springboot集成elasticsearchNote:在这里没有参照网上的方法添加elasticsearch的依赖,而是利用httpclientUtil写了一个EsUtil,对elasticsearch的读写实际是发起的http请求\3、代码思路1)需要能够解析配置文件中的自定义配置参数2)HttpClientUtil、EsUtil,可找…

  • VB学习的总体总结一

    VB学习的总体总结一经过对VB20天左右的学习,对其有了一定的了解。我觉得VB这种工具就是通过程序设计,做出软件。那么,可不可以用这种思想理解,VB的程序设计是怎么一步步进行的,给了我们一天主线。而在每一步中我们需要掌握什么,需要注意什么,思考怎么把每一步做的更好。然后就可以享受成果。 我对VB的整体总结为   VB工具就是一颗种子,设计步骤就是树干,步骤中的细节就是树叶,关键在于我们怎么让其枝繁

  • SpringCloud常见面试题(2020最新版)

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:ThinkWon thinkwon.blog.csdn.net/article/details/1043973…

发表回复

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

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