日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

在Django中自定義filter并在template中的使用詳解

瀏覽:29日期:2024-10-04 15:54:09

Django內置的filter有很多,然而我們由于業務邏輯的特殊要求,有時候仍然會不夠用,這個時候就需要我們自定義filter來實現相應的內容。接下來讓我們從自定義一個get_range(value)來產生列表的filter開始吧。

首先在你的django app的models.py的同級目錄建立一個templatetags的文件夾,并在里面新建一個init.py的空文件,這個文件確保了這個文件夾被當做一個python的包。在添加了templatetags模塊之后,我們需要重新啟動服務器才能使其有效。

polls/ __init__.py models.py templatetags/ __init__.py views.py

然后在templatetags中新建一個python文件,文件名就是以后需要加載到頁面的自定義庫的名字。在這里我們新建一個generalfilters.py文件。

polls/ __init__.py models.py templatetags/ __init__.py generalfilters.py views.py

為了讓庫生效,必須在文件里添加一個模塊級別的register變量。它是template.Library的實例,確保了標簽和過濾器的有效性。

編輯generalfilters.py,添加

from django import templateregister=template.Library()@register.filterdef get_range(value): return range(value)

上述代碼中定義了一個生成列表的函數,@register.filter表示這個函數是一個過濾器。至此我們的生成列表的過濾器就已經寫好了。接下來我們需要把這個過濾器的庫加載到模板里。

在你想要使用的模板的頂部加上{% load generalfilters %},就可以使用這個過濾器了。

{% for i in 5|get_range_bet_within %} {{i}}{% endfor %}

運行結果

在Django中自定義filter并在template中的使用詳解

補充知識:Django 自定義篩選器:重寫DateFieldListFilter

我就廢話不多說了,大家還是直接看代碼吧!

class MyDateTimeFilter(admin.filters.DateFieldListFilter): def __init__(self, *args, **kwargs): super(MyDateTimeFilter, self).__init__(*args, **kwargs) now = timezone.now() # When time zone support is enabled, convert 'now' to the user’s time # zone so Django’s definition of 'Today' matches what the user expects. if timezone.is_aware(now): now = timezone.localtime(now) filter_end_date = now.replace(hour=0, minute=0, second=0, microsecond=0) filter_start_date_for_one_week = filter_end_date - datetime.timedelta(days=7) month_with_day31 = [1,3,5,7,8,10,12] if filter_end_date.month in month_with_day31 and filter_end_date.day == 31 and filter_end_date.month != 3: if filter_end_date.month == 1:filter_start_date_for_one_month = filter_end_date.replace(year=filter_end_date.year-1, month=12) else:filter_start_date_for_one_month = filter_end_date.replace(month=filter_end_date.month-1, day=30) elif filter_end_date.month == 3 and filter_end_date.day in [29, 30, 31]: if is_leap_year(filter_end_date.year):filter_start_date_for_one_month = filter_end_date.replace(month=filter_end_date.month-1, day=29) else:filter_start_date_for_one_month = filter_end_date.replace(month=filter_end_date.month-1, day=28) else: if filter_end_date.month == 1:filter_start_date_for_one_month = filter_end_date.replace(year=filter_end_date.year-1, month=12) else:filter_start_date_for_one_month = filter_end_date.replace(month=filter_end_date.month-1)filter_start_date_for_six_month = ’’ filter_start_date_for_six_month_month = (filter_end_date.month - 6 + 12) % 12 if filter_start_date_for_six_month_month == 0: filter_start_date_for_six_month_month = 12 if filter_start_date_for_six_month_month in month_with_day31: if filter_end_date.month > 6:filter_start_date_for_six_month = filter_end_date.replace(month=filter_start_date_for_six_month_month) else:filter_start_date_for_six_month = filter_end_date.replace(year=filter_end_date.year-1, month=filter_start_date_for_six_month_month) elif filter_start_date_for_six_month_month == 2: if filter_end_date.day in [29, 30, 31]:if is_leap_year(filter_end_date.year): filter_start_date_for_six_month = filter_end_date.replace(month=filter_start_date_for_six_month_month, day=29)else: filter_start_date_for_six_month = filter_end_date.replace(month=filter_start_date_for_six_month_month, day=28) else:filter_start_date_for_six_month = filter_end_date.replace(month=filter_start_date_for_six_month_month) else: if filter_end_date.day == 31 and filter_end_date.month >6:filter_start_date_for_six_month = filter_end_date.replace(month=filter_start_date_for_six_month_month, day=30) elif filter_end_date.day == 31 and filter_end_date.month <=6:filter_start_date_for_six_month = filter_end_date.replace(year=filter_end_date.year-1, month=filter_start_date_for_six_month_month, day=30) elif filter_end_date.day <31 and filter_end_date.month >6:filter_start_date_for_six_month = filter_end_date.replace(month=filter_start_date_for_six_month_month) else:filter_start_date_for_six_month = filter_end_date.replace(year=filter_end_date.year-1, month=filter_start_date_for_six_month_month) filter_end_date = filter_end_date + datetime.timedelta(days=1) self.links = (( (’------’, {}), (’Past week’, {self.lookup_kwarg_since: str(filter_start_date_for_one_week),self.lookup_kwarg_until: str(filter_end_date), }), (’Past month’, {self.lookup_kwarg_since: str(filter_start_date_for_one_month),self.lookup_kwarg_until: str(filter_end_date), }), (’Past 6 months’, {self.lookup_kwarg_since: str(filter_start_date_for_six_month),self.lookup_kwarg_until: str(filter_end_date), }), (’All’, {}), ))

以上這篇在Django中自定義filter并在template中的使用詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91成人精品| 国产一区2区| 亚洲精品乱码| 国产精品国产三级国产在线观看| 国产黄色精品| 欧美一级网站| 欧美日韩国产欧| 夜夜嗨网站十八久久 | 欧洲av不卡| 久久一区二区三区电影| 国产aⅴ精品一区二区三区久久| 香蕉久久夜色精品国产| 亚洲无线观看| 狠狠色狠狠色综合日日tαg| 加勒比视频一区| 国产一区亚洲| 日韩福利一区| 欧美91在线| 91精品99| 日韩一区二区三区精品视频第3页| 91精品国产自产在线观看永久∴| 999在线观看精品免费不卡网站| 黄色日韩在线| 日韩精品91| 日韩av不卡一区二区| 国产一区二区三区亚洲| 精品淫伦v久久水蜜桃| 亚洲一卡久久| 国产精品午夜一区二区三区| 国产精品一在线观看| 久久中文亚洲字幕| 日韩精品第二页| 国产色噜噜噜91在线精品| 亚洲国产影院| 国产欧美日韩在线一区二区 | 国产在线观看www| 亚洲欧洲av| 黄色在线网站噜噜噜| 激情综合网站| 精品国产乱码| 久久电影一区| 青青草国产精品亚洲专区无| 97精品国产福利一区二区三区| 美女被久久久| 精品国产a一区二区三区v免费| 日韩视频精品在线观看| 国产一区二区三区四区五区| 欧美网站在线| 国产日韩一区二区三免费高清| 91精品国产调教在线观看| 老司机免费视频一区二区三区| 欧美精品第一区| 日韩av午夜在线观看| 激情综合网址| 久久精品国产亚洲一区二区三区| 日韩精品久久久久久久软件91| 日本少妇一区| 青青国产精品| 国产亚洲欧美日韩精品一区二区三区| 午夜久久福利| 国产一区2区| 中文字幕在线看片| av资源中文在线天堂| 欧美一区自拍| 夜久久久久久| 亚洲精品高潮| 免费在线看一区| 国产精品一线天粉嫩av| 视频一区二区三区中文字幕| 久久亚洲图片| 久久狠狠婷婷| 精品国产欧美| 成人va天堂| 999精品色在线播放| 福利片在线一区二区 | 亚洲手机在线| aⅴ色国产欧美| 美女性感视频久久| 福利一区二区三区视频在线观看| 91嫩草精品| 日本午夜免费一区二区| 六月婷婷一区| 国产一区二区中文| 日韩va亚洲va欧美va久久| 91精品丝袜国产高跟在线| 亚洲一区av| 久久影院一区二区三区| 麻豆视频在线观看免费网站黄| 精品一区二区三区中文字幕视频 | 亚洲一区区二区| 日韩高清电影一区| 久久久91麻豆精品国产一区| 久久精品国产亚洲一区二区三区| 激情欧美一区二区三区| 欧美亚洲tv| 最新中文字幕在线播放| 免费不卡中文字幕在线| 国产精品**亚洲精品| 免费久久精品| 亚洲女人av| 婷婷丁香综合| 国产精品最新自拍| 成人久久一区| 午夜国产一区二区| 青青草91久久久久久久久| 激情欧美一区| 国产精品一区二区三区av麻| 色网在线免费观看| 婷婷综合成人| 国产精品av一区二区| 91精品国产自产精品男人的天堂| 欧美国产另类| 亚洲三级网址| 亚洲高清成人| 日韩精品亚洲专区在线观看| 国产精品视频3p| 亚洲精品裸体| 午夜亚洲一区| 超级白嫩亚洲国产第一| 妖精视频成人观看www| 国产精品二区不卡| 成人影视亚洲图片在线| 日韩精品三级| 久久九九国产| 三上悠亚国产精品一区二区三区 | 欧美日韩午夜| 国产一区久久| 国产伦精品一区二区三区视频| 亚洲尤物av| 亚洲精品福利| 久久国产成人| 偷拍精品精品一区二区三区| 成人污污视频| 特黄毛片在线观看| 精品国产网站| 日本视频在线一区| 在线观看亚洲精品福利片| 亚洲精品一二| 青草av.久久免费一区| 亚洲免费一区三区| 在线视频精品| 成人羞羞视频播放网站| 国产精品7m凸凹视频分类| 电影天堂国产精品| 成人av三级| 精品美女视频| av高清一区| 欧美精品九九| 日韩精品免费视频一区二区三区| 精品一区在线| 欧美一级专区| 欧美久久亚洲| 成人久久久久| 日本在线不卡视频| 欧美在线观看天堂一区二区三区| 在线日韩av| 欧美另类综合| 国产欧美日韩| 91九色精品| 久久一区亚洲| 欧美丝袜一区| 国产毛片久久| 蜜桃91丨九色丨蝌蚪91桃色| 日韩av一二三| 在线一区电影| 国产精品igao视频网网址不卡日韩| 麻豆精品视频在线观看视频| 国产精品sss在线观看av| 伊人网在线播放| 欧美特黄a级高清免费大片a级| 日韩精品一级中文字幕精品视频免费观看 | 亚洲深夜影院| 国产福利亚洲| 欧美精品一线| 欧美在线首页| 午夜在线视频观看日韩17c| 国产精品mv在线观看| 亚洲免费网址| 亚洲免费成人| 影视先锋久久| 成人午夜网址| 婷婷综合六月| 国产亚洲字幕| 美女网站一区| 精品99久久| 日韩精品成人| 亚洲精品欧美| 亚洲国产成人精品女人| 久久久蜜桃一区二区人| 国产成人免费精品| 欧美激情网址| 欧美激情一区| 欧美日韩一区二区三区四区在线观看| 欧美精品资源| 美女精品视频在线| 亚洲精品无播放器在线播放| 精品视频97| 日本a级不卡| 亚洲最新av| 亚洲深夜影院|