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模块搜索概念介绍及模块安装方法介绍
Jun 03 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
python中字符串类型json操作的注意事项
May 02 Python
Python学习小技巧之利用字典的默认行为
May 20 Python
mac安装scrapy并创建项目的实例讲解
Jun 13 Python
django-crontab 定时执行任务方法的实现
Sep 06 Python
Python unittest 自动识别并执行测试用例方式
Mar 09 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
解决Pymongo insert时会自动添加_id的问题
Dec 05 Python
详解Java中一维、二维数组在内存中的结构
Feb 11 Python
Python实战之疫苗研发情况可视化
May 18 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框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
python使用递归的方式建立二叉树
2019/07/03 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
Python 爬取必应壁纸的实例讲解
2020/02/24 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
如何通过命令行进入python
2020/07/06 Python
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
教师演讲稿范文
2014/01/08 职场文书
市场营销计划书
2015/01/17 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
高考1977观后感
2015/06/04 职场文书
Python PIL按比例裁剪图片
2022/05/11 Python