為了自定義乙個模版標籤,你要告訴django遇到這個標籤的時候該怎麼辦。
當django編譯乙個模版時,它將原來的模版分成乙個個節點(node)。每個節點都是django.template.node的乙個例項,並且具備render()方法,於是,乙個已編譯的模版就是節點物件的乙個列表,例如:
hello, }.
be sure to come back on your birthday
for a splendid surprise message.
❤文字節點:"hello, "
❤變數節點:person.name
❤文字節點:"./n/n"
❤ifequal節點:name.birthday和today
當你呼叫乙個已編譯模版的render()方法時,模板就會用給定的context來呼叫每個在它的節點列表上的所有節點的 render() 方法。 這些渲染的結果合併起來,形成了模板的輸出。 因此,要自定義模板標籤,你需要指明原始模板標籤如何轉換成節點(編譯函式)和節點的render()方法完成的功能 。
開始:編寫編譯函式
(稍後)
django 模版標籤筆記
一 模板變數筆記 1 在模版中使用變數,需要將變數放到 中。2 如果想訪問物件的屬性,可以通過 物件.屬性名 的方式訪問 3 如果想要訪問乙個字典的key對應的value,那麼只能通過 字典.key 4 因為在訪問字典的 key 時候也用 來訪問,因此不能在字典中定義本身就有的屬性名當做 key 否...
Django 自定義模版標籤和過濾器
2 編寫自定義過濾器 test filter.py usr bin env python coding utf 8 from django import template from utils.timebefore import timebefore register template.librar...
Django 自定義標籤
模版是乙個用django模版語言標記過的python字串。模版可以包含模版標籤和變數。模版標籤是在乙個模版裡起作用的標記。比如,乙個模版標籤可以產生控制結構的內容 if或者for 可以獲取資料庫內容或者訪問其它模版標籤。乙個標籤塊被包圍 變數標籤被 包圍 context是乙個傳遞給模版的key va...