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 过滤时间操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Selenium自动化测试实现窗口切换

    Selenium自动化测试实现窗口切换

    这篇文章主要介绍了Selenium自动化测试实现窗口切换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 在Python Flask App中获取已发布的JSON对象的解决方案

    在Python Flask App中获取已发布的JSON对象的解决方案

    这篇文章主要介绍了在Python Flask App中获取已发布的JSON对象的解决方案,文中通过代码示例介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-08-08
  • 一文教你利用Python画花样图

    一文教你利用Python画花样图

    这篇文章主要给大家介绍了关于如何利用Python画花样图的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-10-10
  • python使用PIL实现多张图片垂直合并

    python使用PIL实现多张图片垂直合并

    这篇文章主要为大家详细介绍了python使用PIL实现多张图片垂直合并,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 对numpy中array和asarray的区别详解

    对numpy中array和asarray的区别详解

    下面小编就为大家分享一篇对numpy中array和asarray的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python不相等的两个字符串的 if 条件判断为True详解

    python不相等的两个字符串的 if 条件判断为True详解

    这篇文章主要介绍了python不相等的两个字符串的 if 条件判断为True详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 简单易懂的python环境安装教程

    简单易懂的python环境安装教程

    这篇文章主要为大家详细介绍了简单易懂的python环境安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • PyTorch快速搭建神经网络及其保存提取方法详解

    PyTorch快速搭建神经网络及其保存提取方法详解

    本篇文章主要介绍了PyTorch快速搭建神经网络及其保存提取方法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Python可视化绘制图表的教程详解

    Python可视化绘制图表的教程详解

    python 有许多可视化工具,但本文主要为大家介绍一下Matplotlib。Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,感兴趣的可以了解一下
    2022-10-10
  • nx.adjacency_matrix计算邻接矩阵与真实结果不一致的解决

    nx.adjacency_matrix计算邻接矩阵与真实结果不一致的解决

    这篇文章主要介绍了nx.adjacency_matrix计算邻接矩阵与真实结果不一致的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论