django rest framework 过滤时间操作


Posted in Python onJuly 12, 2020

通常我们会用到过滤两个时间段内的一些数据, 当我们用django rest framework的时候, 他可以根据字段filter_fields进行过滤, 但是对于日期来说并不起作用, 这个时候就需要我们设置重写queryset方法进行捕捉了

重写get_queryset()

def get_queryset(self):
  start = self.request.query_params.get('fault_start_time', None)
  stop = self.request.query_params.get('fault_end_time', None)
  if start and stop:
    return models.ServerFaultRecord.objects.filter(fault_start_time__gte=start).filter(fault_end_time__lte=stop)
  return models.ServerFaultRecord.objects.all()

补充知识:django中时间区间过滤,排序

1.过滤下载

pip install django-filter

2.下载后注册

INSTALLED_APPS=['django_filters',]

3.导入rest_framework

from django_filters import rest_framework

class DoctorsFilter(rest_framework.FilterSet):
  authentication_classes = [TokenAuthentication]
  #开始时间
  start_date = rest_framework.DateFilter(field_name='start_date', lookup_expr='gte')
  #结束时间
  end_date = rest_framework.DateFilter(field_name='end_date', lookup_expr='lte')

4.在类中的使用

from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.viewsets import ModelViewSet
class DoctorsViewSet(ModelViewSet):

   filter_backends = [DjangoFilterBackend]
   #过滤其他的字段
   filter_fields = ('id', 'patient', 'doc_type',)    #指向要过滤的类
   filter_class = DoctorsFilter

2.排序

#1.导入OrderingFilter
from rest_framework.filters import OrderingFilter

#2.在类中的使用
class CarsModelViewSet(ModelViewSet):
  
      queryset =models的类
      serializer_class=序列化组件

 

filter_backends = [OrderingFilter]




#/api/cars/?ordering=-id 倒序
     #/api/cars/?ordering=id 正序
      ordering_fields = ('id', )

以上这篇django rest framework 过滤时间操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
如何搜索查找并解决Django相关的问题
Jun 30 Python
Python version 2.7 required, which was not found in the registry
Aug 26 Python
以windows service方式运行Python程序的方法
Jun 03 Python
Python中函数的参数传递与可变长参数介绍
Jun 30 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
Apr 23 Python
python3实现多线程聊天室
Dec 12 Python
使用python打印十行杨辉三角过程详解
Jul 10 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
浅谈Django2.0 加xadmin踩的坑
Nov 15 Python
Jupyter Notebook 安装配置与使用详解
Jan 06 Python
python 获取计算机的网卡信息
Feb 18 Python
python模块与C和C++动态库相互调用实现过程示例
Nov 02 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 #Python
python读取excel进行遍历/xlrd模块操作
Jul 12 #Python
django rest framework 自定义返回方式
Jul 12 #Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 #Python
Python3交互式shell ipython3安装及使用详解
Jul 11 #Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 #Python
面向新手解析python Beautiful Soup基本用法
Jul 11 #Python
You might like
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
Node.js编码规范
2014/07/14 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
2017/03/07 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
Python注释详解
2016/06/01 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
韩都衣舍天猫官方旗舰店:天猫女装销售总冠军
2017/10/10 全球购物
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
社区活动邀请函范文
2014/01/29 职场文书
学生安全责任书范本
2014/07/24 职场文书
小学师德师风整改措施
2014/10/27 职场文书
心得体会格式及范文
2016/01/25 职场文书
初三化学教学反思
2016/02/22 职场文书
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android
python中subplot大小的设置步骤
2021/06/28 Python