1. 程式人生 > 實用技巧 >自定義標籤和過濾器

自定義標籤和過濾器

自定義標籤和過濾器

自定義過濾器

1. app應用資料夾中建立一個templatetags檔案件,必須是這個名字
2. templatetags資料夾中建立一個 xx.py檔案,檔名字隨便起

3. 建立自定義過濾器
    from django import template

    register = template.Library()  #register固定的名字,註冊器

    # @register.filter
    # def oo(v1,v2):  #不帶引數的過濾器
    #     s = v1 + 'xxoo'

    #     return s

    @register.filter
    def oo(v1,v2):  #帶引數的過濾器
        s = v1 + v2
        return s
    
4. 使用  html檔案中  {% load 檔名 %} 
	{% load xx %}
    {{ values|oo }} -- 無引數
    {{ values|oo:'asdf' }} -- 有引數

5. 注意:引數最多兩個


自定義標籤
1. app應用資料夾中建立一個templatetags檔案件,必須是這個名字
2. templatetags資料夾中建立一個 xx.py檔案,檔名字隨便起
3. 建立自定義標籤
	@register.simple_tag
	def mytag(v1,v2,v3):  
    	s = v1 + '和B哥' + v2 + v3
    	return s

4.使用
	{% load xx %}
	{% mytag s1 '和相璽' '和大壯' %}  
5. #可以傳多個引數


inclusion_tag

1. app應用資料夾中建立一個templatetags檔案件,必須是這個名字
2. templatetags資料夾中建立一個 xx.py檔案,檔名字隨便起
3. 建立自定義inclusion_tag
	@register.inclusion_tag('inclusiontag.html')
    def func(v1):

        return {'oo':v1}
4. func的return資料,傳給了inclusiontag.html,作為模板渲染的資料,將inclusiontag.html渲染好之後,作為一個元件,生成到呼叫這個func的地方
5. 使用
	{% load xx %}
	{% func l1 %}