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 相关文章推荐
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 Python
Python实现控制台进度条功能
Jan 04 Python
python中的编码知识整理汇总
Jan 26 Python
Python中标准库OS的常用方法总结大全
Jul 19 Python
python实现Excel文件转换为TXT文件
Apr 28 Python
在python tkinter中Canvas实现进度条显示的方法
Jun 14 Python
django formset实现数据表的批量操作的示例代码
Dec 06 Python
python实现图片横向和纵向拼接
Mar 05 Python
PyCharm中配置PySide2的图文教程
Jun 18 Python
python如何运行js语句
Sep 09 Python
python判断all函数输出结果是否为true的方法
Dec 03 Python
python中的random模块和相关函数详解
Apr 22 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
在smarty中调用php内置函数的方法
2013/02/07 PHP
请离开include_once和require_once
2013/07/18 PHP
CI框架常用方法小结
2016/05/17 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
封装微信小程序http拦截器过程解析
2019/08/13 Javascript
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
高分子材料个人求职信范文
2013/09/25 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
新郎答谢词
2015/01/04 职场文书
销售督导岗位职责
2015/04/10 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers