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连接mysql驱动有关问题(windows版本)
Apr 23 Python
Python获取文件所在目录和文件名的方法
Jan 12 Python
使用Python写CUDA程序的方法
Mar 27 Python
Django验证码的生成与使用示例
May 20 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
Apr 29 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
May 04 Python
Linux下通过python获取本机ip方法示例
Sep 06 Python
python数据分析工具之 matplotlib详解
Apr 09 Python
Django中的AutoField字段使用
May 18 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
Python利用机器学习算法实现垃圾邮件的识别
Jun 28 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
搜索引擎技术核心揭密
2006/10/09 PHP
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
PHP中的事务使用实例
2015/05/26 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
php命令行写shell实例详解
2018/07/19 PHP
JavaScript语言中的Literal Syntax特性分析
2007/03/08 Javascript
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
Js获取事件对象代码
2010/08/05 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
图解js图片轮播效果
2015/12/20 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
webpack打包js的方法
2018/03/12 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
koa2的中间件功能及应用示例
2020/03/05 Javascript
python Django连接MySQL数据库做增删改查
2013/11/07 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
python3 mmh3安装及使用方法
2019/10/09 Python
python plotly画柱状图代码实例
2019/12/13 Python
python实现的Iou与Giou代码
2020/01/18 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
大专应届生个人的自我评价
2013/11/21 职场文书
2014学年自我鉴定
2014/02/23 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
应聘教师自荐书
2014/06/16 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
个人专业技术总结
2015/03/05 职场文书
消费者投诉书范文
2015/07/02 职场文书
工作感想范文
2015/08/07 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电