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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • deeplab系列详解(简单实用年度总结)

    1、卷积神经网络为什么具有平移不变性?不变性可分为:平移不变性:TranslationInvariance 旋转/视角不变性:Ratation/ViewpointInvariance 尺度不变性:SizeInvariance 光照不变性:IlluminationInvarianceCNN=卷积+池化图像的特征被平移了,那么在卷积的过程中,特征提取也相应的被平移了…

    2022年4月11日
    389
  • OpenCV—Python 分水岭算法图像分割「建议收藏」

    OpenCV—Python 分水岭算法图像分割「建议收藏」文章目录一、前言二、cv2.distanceTransform(src,distanceType,maskSize)三、基于标记的分水岭分割功能四、示例代码一、前言分水岭算法是一种图像区域分割法,在分割的过程中,它会把跟临近像素间的相似性作为重要的参考依据,从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓,封闭性是分水岭算法的一个重要特征。其他图像分割方法,如阈…

    2022年6月18日
    48
  • 成功安装windows server 2008 R2 AD 服务

    成功安装windows server 2008 R2 AD 服务

    2022年3月8日
    57
  • C++操作单链表ListNode「建议收藏」

    C++操作单链表ListNode通过C++进行单链表的创建、打印以及利用栈实现逆序打印。单链表的创建和打印#include<iostream>usingnamespacestd;//定义结构体structListNode{ intval; ListNode*next;};classoperateList{public: /*创建单链表*/ …

    2022年4月7日
    43
  • SpringBoot项目打成war和jar的区别「建议收藏」

    SpringBoot项目打成war和jar的区别「建议收藏」首先给大家来讲一个我们遇到的一个奇怪的问题:1.我的一个springboot项目,用mvninstall打包成jar,换一台有jdk的机器就直接可以用java-jar项目名.jar的方式运行,没任何问题,为什么这里不需要tomcat也可以运行了?2.然后我打包成war放进tomcat运行,发现端口号变成tomcat默认的8080(我在server.port中设置端口8090)项目名称也…

    2022年5月10日
    58
  • 使用POI替换word中的特定字符/文字改进版

    推荐:http://www.cnblogs.com/roucheng/p/3504465.html

    2021年12月26日
    99

发表回复

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

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