1. 程式人生 > >Django自定義模板標簽和過濾器

Django自定義模板標簽和過濾器

註冊 rar 參考資料 AD return mar load ... cnblogs

inclusion_tag()

在app中新建一個templatetags包(名字固定,不能變,只能是這個),
和views.py、models.py等文件處於同一級別目錄下。
這是一個包!不要忘記創建__init__.py文件以使得該目錄可以作為Python的包

1.首先,編寫Python函數,templatetags/my_tags.py

from django import template

register = template.Library()
register = Library()
# 調用Library對象的inclusion_tag()裝飾器方法創建並註冊Inclusion標簽 
@register.inclusion_tag("stark/form.html")     
# 接收一個form參數 return數據給裝飾器內的前端頁面
def get_form(form):                                        
    ...
    ...
    return {"form":form}

2.接下來,創建用於標簽渲染的模板stark/form.html

<ul>
{% for i in form%}
    <li> {{ i }} </li>
{% endfor %}
</ul>

3.帶數據模板的使用方法

{% load my_tags %}
...
{% get_form form %}

流程:
步驟3中的前端接收一個form 並將form傳給前面的get_form作為參數
函數運行完又生產一個form傳遞給裝飾器內的前端頁面展示

參考資料:自定義標簽

Django自定義模板標簽和過濾器