2011-07-04 191 views
12

的想法是有一個頁面上的多個部件,幷包括所有的JS和CSS文件所需形式的這種「小工具」(可以很容易地管理文件這樣) 。重複的文件不是問題。 每個小部件的模板包含到一個頁面由{%包含%} 從widget的模板中我試圖將內容添加到父母的塊:Django模板 - 在模板中包含使用block.super失敗(例外)

家長:

{%block js%} 
{%endblock%} 

WIDGET

{%block js%} 
    {{block.super}} 
    ///my widget spectyfic JS 
{%end block%} 

這是給出了一個錯誤{{block.super}}: Caught AttributeError while rendering: 'BlockNode' object has no attribute 'context'

我不知道我怎麼能擴展塊...似乎它在django中是不可能的...任何想法? 定義多個塊將無法工作,因爲我們不知道有多少不同的部件用什麼名稱,我們將在每一頁上...(這不是一個nemplate的憂慮)

+1

嗨robertzp,我也面臨着同樣的問題。你有解決方案嗎?請幫助我。 – PythonDev

回答

14

the docs

注意

include標記應被視爲「呈現此子模板,幷包括HTML」,而不是「分析此子模板,包括它的內容就好像它是母公司的一部分」的實現。這意味着所包含模板之間不存在共享狀態 - 每個包含都是完全獨立的呈現過程。

如果你想block.super工作,那麼你需要使用extends來代替。