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实现dict版图遍历示例
Feb 19 Python
利用python生成一个导出数据库的bat脚本文件的方法
Dec 30 Python
基于Python的XSS测试工具XSStrike使用方法
Jul 29 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
May 24 Python
python正则表达式去除两个特殊字符间的内容方法
Dec 24 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
python实现抠图给证件照换背景源码
Aug 20 Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 Python
Python wordcloud库安装方法总结
Dec 31 Python
Django分页器的用法你都了解吗
May 26 Python
Python时间操作之pytz模块使用详解
Jun 14 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
怎样在UNIX系统下安装php3
2006/10/09 PHP
php Http_Template_IT类库进行模板替换
2009/03/19 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
jquery 使用简明教程
2014/03/05 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
JS变量及其作用域
2017/03/29 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
python分割和拼接字符串
2013/11/01 Python
python类继承与子类实例初始化用法分析
2015/04/17 Python
深入浅析Python中的迭代器
2019/06/04 Python
Python 元组操作总结
2019/09/18 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
执行Python程序时模块报错问题
2020/03/26 Python
浅析Python 序列化与反序列化
2020/08/05 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
如何用SQL语句进行模糊查找
2015/09/25 面试题
青年创业培训欢迎词
2014/01/08 职场文书
大学生个人实习的自我评价
2014/02/15 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
会议主持人开场白台词
2015/05/28 职场文书
高考1977观后感
2015/06/04 职场文书