2010-12-07 57 views
2

考慮以下目錄:Django的模板包括/延伸帶子目錄

|- basic.html 
|- nav.html 
|- folder1/ 
|- |- page.html 
\- \- nav.html 

page.html延伸../basic.html包括nav.html

在這種情況下,其被認爲包括在folder1/nav.html。如果我刪除folder1/nav.html沒有任何被包括在內。我該如何解決?我可以將nav.html轉換爲basic.html,但可能會出現我想要basic.html做一些包括的情況。

編輯:這個想法是任何繼承basic.html的東西都會得到頂層的nav.html模板,但似乎並不是這樣,因爲include nav.html指令是在任何模板的當前目錄中評估的。

+0

你可以評論你爲什麼要刪除folder1/nav.html?如果您要刪除包含的文件,您似乎只需修復basic.html。當然,我知道你有自己的情況,但我會成爲那個說可能有不同的方法來處理它的人。 – munchybunch 2011-01-11 08:22:00

+0

看起來唯一的方法就是直接在basic.html中包含nav.html的內容,但是我寧願將它分開 - 當然,純粹是美學原因。 – decitrig 2011-01-12 18:34:01

回答

0

我不知道我是否正確地得到了一切,但我認爲你必須附上includeblock

basic.html:

... 
{% block navigation %} 
{% include "nav.html" %} 
{% endblock %} 

page.html中:

{% extends "../basic.html" %} 
{% block navigation %} 
{% include "folder1/nav.html" %} 
{% endblock %} 

如果不重寫page.html導航塊中的原始包括應該用...