django開發系列:自定義過濾器

django開發系列:自定義過濾器

自定義過濾器:

  1. 首先在某個app中,創建一個python包,叫做templatetags,注意,這個包的名字必須爲templatetags,不然就找不到。
  2. 在這個templatetags包下面,創建一個python文件用來存儲過濾器。
  3. 在新建的python文件中,定義過濾器(也就是函數),這個函數的第一個參數永遠是被過濾的那個值,並且如果在使用過濾器的時候傳遞參數,那麼還可以定義另外一個參數。但是過濾器最多隻能有2個參數。
  4. 在寫完過濾器(函數)後,要使用django.template.Library.filter進行註冊。
  5. 還要把這個過濾器所在的這個app添加到settings.INSTALLED_APS中,不然Django也找不到這個過濾器。
  6. 在模板中使用load標籤加載過濾器所在的python包。
  7. 可以使用過濾器了。
  8. django.template.Library.filter還可以當作裝飾器來使用。如果filter函數沒有傳遞任何參數,那麼將會使用這個函數的名字來作爲過濾器的名字。當然如果你不想使用函數的名字來作爲過濾器的名字,也可以傳遞一個name參數。示例代碼如下:
from django import template
from datetime import datetime

register = template.Library()

# 過濾器最多隻能有兩個參數
# 過濾器的第一個參數永遠都是被過濾的那個參數(也就是豎線左邊的那個參數)
@register.filter('my_greet')
def greet(value,word):
    return value + word

#另一種註冊方法
register.filter("greet",greet)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章