django rest framework 过滤时间操作

 更新时间:2020年07月12日 09:40:56   作者:小恩阿  
这篇文章主要介绍了django rest framework 过滤时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

通常我们会用到过滤两个时间段内的一些数据, 当我们用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 过滤时间操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详细介绍Scrapy shell的使用教程

    详细介绍Scrapy shell的使用教程

    Scrapy shell是一个非常有用的工具,可以帮助开发者快速地测试和调试Scrapy的爬虫代码,这篇文章主要介绍了详细介绍Scrapy shell的使用,需要的朋友可以参考下
    2023-05-05
  • python中getattr函数使用方法 getattr实现工厂模式

    python中getattr函数使用方法 getattr实现工厂模式

    这篇文章主要介绍了python中getattr()这个函数的一些用法,大家参考使用吧
    2014-01-01
  • 使用wxpython实现的一个简单图片浏览器实例

    使用wxpython实现的一个简单图片浏览器实例

    这篇文章主要介绍了使用wxpython实现的一个简单图片浏览器实例,根据自己的特殊需求而写,需要的朋友可以参考下
    2014-07-07
  • 四个Python常用OCR库的用法详解

    四个Python常用OCR库的用法详解

    在接口自动化工作中,经常需要处理文字识别的任务,而OCR库能够帮助我们将图像中的文字提取出来,所以本文为大家整理了四个常用的OCR库以及它们的用法,需要的可以参考下
    2023-09-09
  • python实现JAVA源代码从ANSI到UTF-8的批量转换方法

    python实现JAVA源代码从ANSI到UTF-8的批量转换方法

    这篇文章主要介绍了python实现JAVA源代码从ANSI到UTF-8的批量转换方法,涉及Python针对文件操作与编码转换的相关技巧,需要的朋友可以参考下
    2015-08-08
  • 关于tensorflow的几种参数初始化方法小结

    关于tensorflow的几种参数初始化方法小结

    今天小编就为大家分享一篇关于tensorflow的几种参数初始化方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python+matplotlib绘制多子图的方法详解

    Python+matplotlib绘制多子图的方法详解

    Matplotlib是Python中最受欢迎的数据可视化软件包之一,它是 Python常用的2D绘图库,同时它也提供了一部分3D绘图接口。本文将详细介绍如何通过Matplotlib绘制多子图,需要的可以参考一下
    2022-07-07
  • python实现m3u8格式转换为mp4视频格式

    python实现m3u8格式转换为mp4视频格式

    这篇文章主要为大家详细介绍了python实现m3u8格式转换为mp4视频格式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • 使用python创建Excel工作簿及工作表过程图解

    使用python创建Excel工作簿及工作表过程图解

    这篇文章主要介绍了使用python创建Excel工作簿及工作表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • python中global与nonlocal比较

    python中global与nonlocal比较

    这篇文章主要介绍了python中global与nonlocal比较,global关键字用来在函数或其他局部作用域中使用全局变量,nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量,需要的朋友可以参考下
    2014-11-11

最新评论