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之有容乃大的list(3)
Sep 15 Python
python+pandas+时间、日期以及时间序列处理方法
Jul 10 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
Python设计模式之观察者模式原理与用法详解
Jan 16 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
Tornado实现多进程/多线程的HTTP服务详解
Jul 25 Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 Python
Python实现搜索算法的实例代码
Jan 02 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
Python基于os.environ从windows获取环境变量
Jun 09 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 14 Python
Python基本数据类型之字符串str
Jul 21 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中的integer类型使用分析
2010/07/27 PHP
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
Javascript常考语句107条收集
2010/03/09 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
node.js超时timeout详解
2014/11/26 Javascript
js选项卡的实现方法
2015/02/09 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
Python 探针的实现原理
2016/04/23 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
用Django写天气预报查询网站
2018/10/21 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
使用django自带的user做外键的方法
2020/11/30 Python
英国著名的药妆网站:Escentual
2016/07/29 全球购物
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
教师自荐信范文
2013/12/09 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
个人工作总结范文2014
2014/11/07 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
旅游项目合作意向书
2015/05/08 职场文书
CSS巧用渐变实现高级感背景光动画
2021/12/06 HTML / CSS
分享3个非常实用的 Python 模块
2022/03/03 Python