大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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系”的数据
排序过滤
跟搜索过滤一样,只需要配置局部变量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"
,那么我们就会过滤出所有宝马系列的车子,并且数据的排序按照车的价格从低到高排序
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/165756.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...