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 相关文章推荐
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
Python实现的ini文件操作类分享
Nov 20 Python
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
pandas中Timestamp类用法详解
Dec 11 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
Python函数中不定长参数的写法
Feb 13 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
Apr 26 Python
python 默认参数相关知识详解
Sep 18 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
详解字符串在Python内部是如何省内存的
Feb 03 Python
python接入支付宝的实例操作
Jul 20 Python
python 闭包函数详细介绍
Apr 19 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
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
jQuery的强大选择器小结
2009/12/27 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
npm 下载指定版本的组件方法
2018/05/17 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
详解JavaScript的变量
2019/04/04 Javascript
为react组件库添加typescript类型提示的方法
2020/06/15 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
Python装饰器decorator用法实例
2014/11/10 Python
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
中国旅游网站:途牛旅游网
2019/09/29 全球购物
计算机专业自荐信
2013/10/14 职场文书
大学生党课思想汇报
2013/12/29 职场文书
学雷锋标语
2014/06/25 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
老干部座谈会主持词
2015/07/03 职场文书
初一语文教学反思
2016/03/03 职场文书