django admin管理工具自定义时间区间筛选器DateRangeFilter介绍

作者:ZeroChia 时间:2023-03-23 04:12:20 

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 这个范围之间

来源:https://blog.csdn.net/ZeroChia/article/details/82458420

标签:django,admin,DateRangeFilter
0
投稿

猜你喜欢

  • 5道关于python基础 while循环练习题

    2023-05-22 02:03:33
  • selenium中get_cookies()和add_cookie()的用法详解

    2023-10-22 14:27:19
  • Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)

    2023-06-23 12:44:34
  • Python yield 使用浅析

    2022-01-09 03:56:50
  • Python数据结构树与算法分析

    2023-10-10 19:30:18
  • 详解python做UI界面的方法

    2023-05-24 08:07:41
  • 精细讲述SQL Server数据库备份多种方法

    2009-01-13 13:33:00
  • Python 函数那不为人知的一面

    2022-09-24 10:03:31
  • Python3.5编程实现修改IIS WEB.CONFIG的方法示例

    2022-04-22 15:27:55
  • Python pandas替换指定数据的方法实例

    2022-01-20 05:38:55
  • 错误 2812: 未能找到存储过程 'master.dbo.xp_fileexist'

    2010-07-22 19:50:00
  • FireFox浏览器使用Javascript上传大文件

    2023-11-17 09:49:27
  • mysql数据库忘记管理员密码的解决方法

    2024-01-24 10:56:55
  • go mode tidy出现报错go: warning: “all“ matched no packages的解决方法

    2024-02-04 22:35:14
  • Windows环境下实现批量执行Sql文件

    2024-01-14 14:12:40
  • python编码问题汇总

    2023-10-02 08:05:54
  • 在Mac OS上安装Oracle数据库的基本方法

    2024-01-20 13:57:11
  • Python采用socket模拟TCP通讯的实现方法

    2021-04-03 09:43:23
  • Python Pandas 获取列匹配特定值的行的索引问题

    2023-11-01 06:37:42
  • python正则分组的应用

    2022-05-24 20:50:39
  • asp之家 网络编程 m.aspxhome.com