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 sys.argv用法实例
May 28 Python
python爬虫实战之最简单的网页爬虫教程
Aug 13 Python
Django中redis的使用方法(包括安装、配置、启动)
Feb 21 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
django 外键model的互相读取方法
Dec 15 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
Aug 19 Python
python 实现从高分辨图像上抠取图像块
Jan 02 Python
python简单实现最大似然估计&scipy库的使用详解
Apr 15 Python
Python selenium模块实现定位过程解析
Jul 09 Python
django模型类中,null=True,blank=True用法说明
Jul 09 Python
基于python实现复制文件并重命名
Sep 16 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
火车头采集器3.0采集图文教程
2007/03/17 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
从零学习node.js之利用express搭建简易论坛(七)
2017/02/25 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
vue watch监控对象的简单方法示例
2021/01/07 Vue.js
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python实现获取某天是某个月中的第几周
2015/02/11 Python
详解python基础之while循环及if判断
2017/08/24 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
python简单实现最大似然估计&scipy库的使用详解
2020/04/15 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
英国女装网上商店:I Saw It First
2018/10/18 全球购物
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
英语专业毕业生求职信
2014/05/24 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
2015年宣传部个人工作总结
2015/05/14 职场文书
实习报告范文
2019/07/30 职场文书
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle