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 相关文章推荐
python使用wxpython开发简单记事本的方法
May 20 Python
使用Python发送各种形式的邮件的方法汇总
Nov 09 Python
Python函数的周期性执行实现方法
Aug 13 Python
Python简单删除列表中相同元素的方法示例
Jun 12 Python
python实现单向链表详解
Feb 08 Python
python实现多线程网页下载器
Apr 15 Python
python使用wxpy实现微信消息防撤回脚本
Apr 29 Python
一文了解Python并发编程的工程实现方法
May 31 Python
Python3.5以上版本lxml导入etree报错的解决方案
Jun 26 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
python科学计算之narray对象用法
Nov 25 Python
弄清Pytorch显存的分配机制
Dec 10 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使用类继承解决代码重复的问题
2015/02/11 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
web前端开发也需要日志
2010/12/09 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
用Python进行TCP网络编程的教程
2015/04/29 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
微信跳一跳python代码实现
2018/01/05 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
2015年幼儿园毕业感言
2014/02/12 职场文书
入学申请自荐信范文
2014/02/26 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
设计师求职信模板
2014/05/06 职场文书
个人委托书
2014/07/31 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
党员民主评议个人总结
2014/10/20 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
标准发言稿结尾
2019/07/18 职场文书