1. 程式人生 > >Django之模板層-自定義過濾器以及標籤

Django之模板層-自定義過濾器以及標籤

自定義標籤與過濾器

  1. 在settings中的INSTALLED_APPS配置當前app,不然django無法找到自定義的simple_tag.
  2. 在app中建立templatetags模組(模組名只能是templatetags)
  3. 建立任意 .py 檔案,如:my_tags.py
from django import template

# 該物件名必須是register
register = template.Library()

#自定義過濾器裝飾器
@register.filter
def multi_filter(x,y):
    return x*y

#自定義標籤裝飾器
@register.simple_tag
def multi_tag(x,y):
    return x*y

使用自定義的過濾器與標籤,在需要使用的模板檔案中先匯入模組,然後再呼叫過濾器

    {# 匯入自定義的模組 #}
    {% load my_tag_filter %}
    {{ i|multi_filter:2 }}
    {% multi_tag 5 5 %}

過濾器只能接收兩個引數,第一個引數是管道符前的值,第二個引數是:後面傳入的引數,過濾器可以使用在邏輯判斷中

標籤可以傳入任意引數,以空格分隔,標籤不可以使用在邏輯判斷中