django admin管理工具自定義時(shí)間區(qū)間篩選器DateRangeFilter介紹
django admin管理工具有很多好用的功能,例如搜索框、篩選器等,編碼簡(jiǎn)單,功能強(qiáng)大。
但是常規(guī)的時(shí)間篩選有一定局限性,只能顯示一定時(shí)間節(jié)點(diǎn)到當(dāng)前時(shí)間這一段時(shí)間段內(nèi)的篩選結(jié)果,做不到自由定義時(shí)間段篩選,本人找到了可以實(shí)現(xiàn)這一功能的插件,就是今天要介紹的DateRangeFilter。
注意: DateRangeFilter只適用于Django 1.4以上的版本。
插件安裝
使用 pip或easy_install:
pip install django-daterange-filter
修改配置
在settings.py中的INSTALLED_APPS如下加入配置項(xiàng):
INSTALLED_APPS = ( ... 'daterange_filter' )
加入篩選器
假設(shè)你需要普通篩選和通過時(shí)間區(qū)間進(jìn)行篩序的字段在models.py里分別是這么寫的:
class TaskModel(models.Model): ... user_name = models.CharField(u'用戶名', max_length=128) submit_time = models.DateTimeField(u'提交時(shí)間', auto_now_add=True) ...
那么,在admin.py引入篩選器插件:
from daterange_filter.filter import DateRangeFilter
以上這點(diǎn)是文檔中最容易被忽視的部分,所以這里單獨(dú)列出來以引起重視。
admin.py中涉及到的DateRangeFilter篩選器完整的部分應(yīng)該這么寫:
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頁(yè)面上注冊(cè)后就可以看到效果了。
參考鏈接:https://pypi.org/project/django-daterange-filter/1.1.1/
補(bǔ)充知識(shí):python django orm 過濾 時(shí)間,數(shù)字比較方法
首先我們來現(xiàn)說一下富比較方法在實(shí)際工作中的運(yùn)用場(chǎng)景,小編一般運(yùn)用比較多的是時(shí)間的比較,數(shù)字比較,只要能比較的地方都可以用 如果說 我要?jiǎng)?chuàng)建一條信息,但是如果時(shí)間重疊 或者沖突就不能創(chuàng)建成功,
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 給出一個(gè)時(shí)間范圍 在一個(gè)范圍之內(nèi) 在start_time,到end_time 這個(gè)范圍之間
以上這篇django admin管理工具自定義時(shí)間區(qū)間篩選器DateRangeFilter介紹就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python制作當(dāng)年第一款手機(jī)游戲-貪吃蛇游戲(練習(xí))
這篇文章主要介紹了Python制作當(dāng)年第一款手機(jī)游戲-貪吃蛇游戲,文章利用Python?pygame做一個(gè)貪吃蛇的小游戲而且講清楚每一段代碼是用來干嘛的,需要的朋友可以參考一下2022-01-01pyqt QGraphicsView 以鼠標(biāo)為中心進(jìn)行縮放功能實(shí)現(xiàn)
在PyQt開發(fā)中,實(shí)現(xiàn)QGraphicsView的鼠標(biāo)中心縮放功能需要注意初始化以及關(guān)鍵函數(shù)的重定義,遇到不達(dá)預(yù)期的效果時(shí),可能需要重寫所有鼠標(biāo)事件,本文記錄了解決QGraphicsView鼠標(biāo)縮放問題的過程,供開發(fā)者參考2024-10-106個(gè)實(shí)用的Python自動(dòng)化腳本詳解
每天你都可能會(huì)執(zhí)行許多重復(fù)的任務(wù),例如閱讀 pdf、播放音樂、查看天氣、打開書簽、清理文件夾等等,使用自動(dòng)化腳本,就無需手動(dòng)一次又一次地完成這些任務(wù),非常方便??旄S小編一起試一試吧2022-01-01Python PyYAML庫(kù)解析YAML文件使用詳解
這篇文章主要為大家介紹了Python PyYAML庫(kù)解析YAML文件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Python模擬伯努利試驗(yàn)和二項(xiàng)分布代碼實(shí)例
這篇文章主要介紹了Python模擬伯努利試驗(yàn)和二項(xiàng)分布代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05python range()函數(shù)取反序遍歷sequence的方法
今天小編就為大家分享一篇python range()函數(shù)取反序遍歷sequence的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06Python3實(shí)現(xiàn)生成隨機(jī)密碼的方法
這篇文章主要介紹了Python3實(shí)現(xiàn)生成隨機(jī)密碼的方法,是Python程序設(shè)計(jì)中非常實(shí)用的一個(gè)技巧,需要的朋友可以參考下2014-08-08