django admin管理工具自定义时间区间筛选器DateRangeFilter介绍


Posted in Python onMay 19, 2020

django admin管理工具有很多好用的功能,例如搜索框、筛选器等,编码简单,功能强大。

但是常规的时间筛选有一定局限性,只能显示一定时间节点到当前时间这一段时间段内的筛选结果,做不到自由定义时间段筛选,本人找到了可以实现这一功能的插件,就是今天要介绍的DateRangeFilter。

注意: DateRangeFilter只适用于Django 1.4以上的版本。

插件安装

使用 pip或easy_install:

pip install django-daterange-filter

修改配置

在settings.py中的INSTALLED_APPS如下加入配置项:

INSTALLED_APPS = (
  ...
  'daterange_filter'
)

加入筛选器

假设你需要普通筛选和通过时间区间进行筛序的字段在models.py里分别是这么写的:

class TaskModel(models.Model):
  ...
  user_name = models.CharField(u'用户名', max_length=128)
  submit_time = models.DateTimeField(u'提交时间', auto_now_add=True)
  ...

那么,在admin.py引入筛选器插件:

from daterange_filter.filter import DateRangeFilter

以上这点是文档中最容易被忽视的部分,所以这里单独列出来以引起重视。

admin.py中涉及到的DateRangeFilter筛选器完整的部分应该这么写:

from daterange_filter.filter import DateRangeFilter
from django.contrib import admin
from models import TaskModel

class TaskAdmin(admin.ModelAdmin):
  list_filter = (
    'user_name',
    ('submit_time', DateRangeFilter), # this is a tuple
    ...
  )

在admin页面上注册后就可以看到效果了。

django admin管理工具自定义时间区间筛选器DateRangeFilter介绍

参考链接:https://pypi.org/project/django-daterange-filter/1.1.1/

补充知识:python django orm 过滤 时间,数字比较方法

首先我们来现说一下富比较方法在实际工作中的运用场景,小编一般运用比较多的是时间的比较,数字比较,只要能比较的地方都可以用 如果说 我要创建一条信息,但是如果时间重叠 或者冲突就不能创建成功,

filter(
      (Q(start_time1__lt=start_time2) & Q(end_time1__gt=end_time2)) |
      Q(start_time1__range=(start_time, end_time)) |
      Q(end_time1__range=(start_time, end_time)))

来说上面的代码,__lt 是小于的意思 start_time1 小于 start_time2 & 并且 end_time1 大于 end_time2 __gt 是大于

‘|'是或者的意思 __range 给出一个时间范围 在一个范围之内 在start_time,到end_time 这个范围之间

以上这篇django admin管理工具自定义时间区间筛选器DateRangeFilter介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
把项目从Python2.x移植到Python3.x的经验总结
Apr 20 Python
Python实现求两个csv文件交集的方法
Sep 06 Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 Python
基于Python的Post请求数据爬取的方法详解
Jun 14 Python
TensorFlow实现自定义Op方式
Feb 04 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 Python
python中加背景音乐如何操作
Jul 19 Python
Python自动化之UnitTest框架实战记录
Sep 08 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
Jan 05 Python
python SOCKET编程基础入门
Feb 27 Python
深度学习详解之初试机器学习
Apr 14 Python
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
Nov 11 Python
在Django中自定义filter并在template中的使用详解
May 19 #Python
Django Model中字段(field)的各种选项说明
May 19 #Python
Django模板获取field的verbose_name实例
May 19 #Python
Django多层嵌套ManyToMany字段ORM操作详解
May 19 #Python
django ORM之values和annotate使用详解
May 19 #Python
基于python实现地址和经纬度转换
May 19 #Python
Python Django form 组件动态从数据库取choices数据实例
May 19 #Python
You might like
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
python多重继承实例
2014/10/11 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
tensorflow输出权重值和偏差的方法
2018/02/10 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
2018/02/23 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
python实现按行分割文件
2019/07/22 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
东南亚地区最大的购物网站Lazada新加坡站点:Lazada.sg
2016/07/17 全球购物
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
SmartBuyGlasses英国:购买太阳镜和眼镜
2018/01/29 全球购物
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
学习型党组织建设经验材料
2014/05/26 职场文书
节水口号标语
2014/06/19 职场文书
应聘护士求职信
2014/07/21 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
升学宴学生答谢词
2015/01/05 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书