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


相关推荐

  • offset偏移量_如何调用结构体

    offset偏移量_如何调用结构体一、函数原型#include<stddef.h>size_toffsetof(type,member);offsetof原型定义:defineoffsetof(t,m)((size_t)&((t*)0)->m)1、关于&((t*)0)的解释1-1:(type*)0作用是强制类型转换,将0转换为(type*)类型,一个type指针类型1-2:编译器在会将&((t*)0)优化为直接取地址,因为这种表达是:先访问空间,再取空间的

    2022年8月22日
    6
  • google地图怎么下载离线地图_谷歌瓦片行列号算经纬度

    google地图怎么下载离线地图_谷歌瓦片行列号算经纬度谷歌地图离线地图瓦片下载Ifyou’veeverwantedtobeabletodownloadGoogleMapsdataforofflineuse,youshouldcheckoutgmapcatcher,across-platformapplicationthatcachesmapsegmentslocally.如果您曾经希望能够下载…

    2022年9月20日
    2
  • 史上最全微信运营工具「建议收藏」

    史上最全微信运营工具「建议收藏」图文排版编辑器  ●秀米:xiumi.us  ●易点编辑器:wxedit.yead.net  ●135微信编辑器:http://www.135editor.com/  ●扔赞微信编辑器:http://bianji.rengzan.com/  ●小易微信编辑器:http://xiaoyi.e7wei.com/  

    2022年6月4日
    80
  • 关于模板函数声明与定义的问题[通俗易懂]

    c++primer上说:c++模板函数的声明与定义通常放在头文件中,而普通的函数通常是声明放在头文件中,定义放在源文件中,为什么会有这样的区别呢?模板函数与普通成员函数到底有什么区别?测试代码:tem.h#ifndef_TEM_H#define_TEM_HtemplateTadd(Ta,Tb);//{//returna+b;//}

    2022年4月17日
    42
  • 安卓handler源码(androidstudio源码)

    Android多线程还有HandleThread,看名字就可以能感觉到得到,会是handler和Thread的综合使用。那到底什么怎么样的呢,就跟随Android的源码来看看他的工作原理是什么样的。我们先看看他的类注解:先看看官方对他的介绍:【Handyclassforstartinganewthreadthathasalooper.Theloopercanth…

    2022年4月17日
    55
  • java 对象转map,map转对象

    java 对象转map,map转对象java对象转map:https://blog.csdn.net/to_Date32/article/details/78190785

    2022年5月16日
    47

发表回复

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

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