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 相关文章推荐
基于python实现微信模板消息
Dec 21 Python
Python读取一个目录下所有目录和文件的方法
Jul 15 Python
python实现的AES双向对称加密解密与用法分析
May 02 Python
tensorflow创建变量以及根据名称查找变量
Mar 10 Python
深入理解Django的中间件middleware
Mar 14 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
Python实现钉钉订阅消息功能
Jan 14 Python
13个Pandas实用技巧,助你提高开发效率
Aug 19 Python
Python排序函数的使用方法详解
Dec 11 Python
python邮件中附加文字、html、图片、附件实现方法
Jan 04 Python
python实现的人脸识别打卡系统
May 08 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 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
php计算程序运行时间的简单例子分享
2014/05/10 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
js技巧--转义符"\"的妙用
2007/01/09 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
innerText 使用示例
2014/01/23 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
JS动态增删表格行的方法
2016/03/03 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
ant design实现圈选功能
2019/12/17 Javascript
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
深入Python解释器理解Python中的字节码
2015/04/01 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
python英语单词测试小程序代码实例
2019/09/09 Python
python tkinter canvas使用实例
2019/11/04 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
大学生优秀的自我评价分享
2013/10/22 职场文书
关于旷工的检讨书
2014/02/02 职场文书
销售竞赛活动方案
2014/08/23 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
作风建设整改方案
2014/10/27 职场文书
五一放假通知怎么写
2015/08/18 职场文书
谢师宴学生答谢词
2015/09/30 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸
python 使用pandas读取csv文件的方法
2022/12/24 Python
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL