rest_framework--过滤器filters--搜索
rest_framework–过滤器filters–搜索
view
from rest_framework.pagination import PageNumberPagination from rest_framework import mixins from rest_framework import viewsets from rest_framework import filtersfrom .models import Goods from .serializers import GoodsSerializerclass GoodsPagination(PageNumberPagination):page_size = 10page_size_query_param = "page_size"page_query_param = "p"max_page_size = 100class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):# 指定querysetqueryset = Goods.objects.all()# 指定序列化类serializer_class = GoodsSerializer# 指定分页类pagination_class = GoodsPagination# 添加过滤器 这里可以吧django-filter过滤器添加进来 和 rest_framework的filters添加进来一起用, 也可以单个用, 看你的需求filter_backends = [filters.SearchFilter]# 指定搜索的字段search_fields = ['name', 'goods_brief', "goods_desc"]
settings
INSTALLED_APPS = ['rest_framework', ]
url
from django.conf.urls import url, includefrom rest_framework.routers import DefaultRouterfrom goods.views import GoodsListViewSet # 生成一个注册器实例对象 router = DefaultRouter() # 将需要自动生成url的接口注册 # 配置goods的url router.register(r'goods', GoodsListViewSet, base_name="goods-list")urlpatterns = [# 自动生成urlurl(r"^", include(router.urls)), ]
效果图
官方说明
SearchFilter
该
SearchFilter
级支持简单单的查询参数基于搜索和基于该admin界面的搜索功能。在使用时,可浏览的API将包含一个
SearchFilter
控件:所述
SearchFilter
如果视图有一类将只应用于search_fields
属性集。该search_fields
属性应该是模型上文本类型字段的名称列表,例如CharField
或TextField
。from rest_framework import filtersclass UserListView(generics.ListAPIView):queryset = User.objects.all()serializer_class = UserSerializerfilter_backends = [filters.SearchFilter]search_fields = ['username', 'email']
http://example.com/api/users?search=russell
您还可以使用查找API双下划线表示法对ForeignKey或ManyToManyField执行相关查找:
search_fields = ['username', 'email', 'profile__profession']
默认情况下,搜索将使用不区分大小写的部分匹配。搜索参数可以包含多个搜索项,其应该是空格和/或逗号分隔。如果使用多个搜索项,则仅当所有提供的项匹配时,才会在列表中返回对象。
搜索行为可以通过在其中添加各种字符来限制
search_fields
。search_fields = ['=username', '=email']
默认情况下,搜索参数已命名
'search'
,但可以使用该SEARCH_PARAM
设置覆盖此参数。from rest_framework import filtersclass CustomSearchFilter(filters.SearchFilter):def get_search_fields(self, view, request):if request.query_params.get('title_only'):return ['title']return super(CustomSearchFilter, self).get_search_fields(view, request)
rest_framework--过滤器filters--搜索相关推荐
- Vue---v-bind数据绑定、事件绑定、v-for循环绑定数据、v-model数据绑定、过滤器filters、v-show、v-if及练习(demo:切换小球颜色、获取数据进行展示、显示和隐藏)
一.如何创建一个Vue实例*******************************************************{{}} 在vue中是一个展示数据的方式一个页面中可以有多个vu ...
- vue 过滤器 filters
<!-- 过滤器: 定义:对要显示的数据进行特定格式化之后再显示(使用与一些简单的逻辑)语法:1. 注册过滤器:Vue.filter.(name, callback) 或 new Vue{fil ...
- 带你掌握Vue过滤器filters及时间戳转换
摘要:Vue的filters过滤器是比较常见的一个知识点,下面我将结合时间戳转换的例子带你快速了解filters的用法. 本文分享自华为云社区<三分钟掌握Vue过滤器filters及时间戳转换& ...
- vue中过滤器filters的this指向问题。
今天在完成一个时间戳转化时想试试vue的过滤器filters,代码如下: execute_time(time) {if (time === 0) return '/'else return this. ...
- vue如何过滤html标签,Vue过滤器filters使用详解
这次给大家带来Vue过滤器filters使用详解,Vue过滤器filters使用的注意事项有哪些,下面就是实战案例,一起来看一下. 示例代码 采用vue单文件组件,使用moment插件格式化日期 {{ ...
- FIORI ELement list report 细节开发,设置过滤器,搜索帮助object page跳转等
目录 1.默认过滤器 2.初始化显示列 3.搜索帮助 3.1 F4搜索帮助 3.2 下拉列表 3.3日期的搜索帮助 4.自定义按钮 5.Object page跳转 5.1 菜单导航 UI.Field ...
- android 低频过滤器,Filters过滤器简介
原标题:Filters过滤器简介 什么是过滤器? 滤波器是能够在衰减其他频率的同时传递(或放大)某些频率的电路.因此,滤波器可以从也包含不期望或不相关频率的信号中提取重要频率. 在电子领域,有许多过滤 ...
- Vue过滤器filters
使用场景 用于一些常见的文本格式化.也许后端返回的数据格式并不是最终想要展示出来的,通过过滤器可以进行处理成自己想要展示出来的格式.由"管道"符号指示. 使用方式 1.双花括号插值 ...
- filters 传参是什么_vue过滤器filters的使用
filters过滤器主要用与对数据内容的格式化,主要是可以用双大括号和v-blind 中使用,filter是需要传递参数的,默认的是前面的值就是参数,如果设置了其他参数,他们则是第二个第三个参数.例如 ...
- Angualr设置自定义管道Pipe(类似Vue的过滤器filters)货币格式化(实现内置管道CurrencyPipe的功能)
新建管道: ng g pipe pipes/money或ng g p pipes/money pipes/money.pipe.ts,同时在父级module.ts加入 im ...
最新文章
- 品质检测破局:工业视觉检测云平台为智能制造“点睛”
- Assembly of long, error-prone reads using repeat graphs 使用重复图组装长且容易出错的读操作
- “自由主义教皇” 、​Linux 之父的封神之路
- MVC用非Entity Framework将数据显示于视图(二)
- android 布局中 layout_gravity、gravity、orientation、layout_weight
- [Todo] 乐观悲观锁,自旋互斥锁等等
- matlab外部调用lingo,讲讲官方的例子,MATLAB调用Lingo
- Kotlin入门(31)JSON字符串的解析
- creat是什么意思中文翻译_英语create的中文是什么意思
- 化工企业数据分析中心项目之采购模块分析
- setTimeout/setInterval伪异步
- python入门笔记第一天
- 开关电容共模反馈学习
- VMware卸载后再安装提示无法打开注册表项 UNKNOWN\Components\…解决办法
- Linux操作系统笔记(基本命令+环境安装项目部署+Shell编程)
- LT3759 宽输入电压范围升压 / 负输出 / SEPIC 控制器 可在输入电压低至 1.6V 的情况下工作...
- C语言函数递归—经典递归问题
- 远程桌面控制软件 Splashtop 新增本地部署版产品 On-Prem
- 基于DS18B20数字温度传感器的温度计设计
- 论文研读 —— 6. ImageNet Classification with Deep Convolutional Neural Networks (3/3)
热门文章
- AC2100 OpenWrt 多拨
- 台式电脑接路由器步骤_台式电脑插线步骤图连接路由器(路由器最正确的连接方法)...
- 博客中Java开发的软硬件环境
- win10虚拟机环境下运行驱动程序
- 测试固态硬盘好坏的软件,电脑怎么测试ssd固态硬盘|电脑测试ssd固态硬盘的方法...
- 艺多不压身—摩尔斯电码
- php中的,理解php中的print EOT
- 零零信安:攻击面管理(ASM)技术详解和实现
- oracle deadlock with TM lock in SX/SSX mode
- Gateway断言功能详解