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操作Access数据库基本步骤分析
Sep 19 Python
python实现Adapter模式实例代码
Feb 09 Python
python奇偶行分开存储实现代码
Mar 19 Python
python opencv设置摄像头分辨率以及各个参数的方法
Apr 02 Python
PyQt5每天必学之进度条效果
Apr 19 Python
Python并发:多线程与多进程的详解
Jan 24 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
Python使用qrcode二维码库生成二维码方法详解
Feb 17 Python
python中shell执行知识点
May 06 Python
基于FME使用Python过程图解
May 13 Python
python Tkinter的简单入门教程
Apr 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
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
ajax实现无刷新分页(php)
2010/07/18 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
Codeigniter发送邮件的方法
2015/03/19 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
ReactNative列表ListView的用法
2017/08/02 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
Python天气预报采集器实现代码(网页爬虫)
2012/10/07 Python
python实现定制交互式命令行的方法
2014/07/03 Python
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
酒店门卫岗位职责
2013/12/29 职场文书
一般党员对照检查材料
2014/09/24 职场文书
法定代表人免职证明
2015/06/24 职场文书
导游词之崇武古城
2019/10/07 职场文书
python开发的自动化运维工具ansible详解
2021/08/07 Python