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 爬虫多线程详解及实例代码
Oct 08 Python
python3实现全角和半角字符转换的方法示例
Sep 21 Python
numpy matrix和array的乘和加实例
Jun 28 Python
Django添加feeds功能的示例
Aug 07 Python
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
Python操作配置文件ini的三种方法讲解
Feb 22 Python
python的turtle库使用详解
May 10 Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 Python
Python数据可视化实现正态分布(高斯分布)
Aug 21 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
Python内置类型性能分析过程实例
Jan 29 Python
如何在python中执行另一个py文件
Apr 30 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之autoload运行机制实例分析
2014/08/28 PHP
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
js实现表单多按钮提交action的处理方法
2015/10/24 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
Flask处理Web表单的实现方法
2021/01/31 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
越南综合购物网站:Lazada越南
2019/06/10 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
大学生入党自我鉴定
2013/10/31 职场文书
模特大赛策划方案
2014/05/28 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
学校施工安全责任书
2015/01/29 职场文书
学生检讨书怎么写
2015/05/07 职场文书
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers