2011-12-13 77 views
5

我有一個base.html模板,包含字符集,谷歌網站驗證,樣式表,js等網站範圍的標籤....我還需要爲頁面特定標題標籤設置塊和元描述。Django模板繼承的適當方法<head>內容

我想知道,我應該在base.html中設置一個{%block head%},並在該塊中繼承模板混合標記,或者設置特定塊,例如{%block meta%}和{%block title%},這樣當Django呈現給html時,標籤就會出現在適當的位置。

這是否有意義?如果我在一個{%block head%}中查看所有標記混合在一起的情況,那麼事情會有點不合理,但是如果我爲每個標記添加特定塊,那麼它們就可以使用,但使用更多的代碼......?

+0

整個事情的頭塊我想這取決於你通常認爲你需要重寫其他模板。 – second 2011-12-13 22:53:35

回答

5

我通常有三個塊。這三個在過去的1.5年中覆蓋了我和我的同事的所有需求:-)

  • css的塊。

  • JavaScript的塊。

  • 稱爲「頭額外」的塊。通常你想在頁面上做一些特殊的事情,比如添加一個鏈接元素指向你的rss提要。或者一些內嵌的JavaScript代碼片段。有了這個模塊,你就可以清楚地看到這些角落案例。

在擴展基本模板的模板,你可以使用{{ super }}在CSS和JavaScript塊獲得「父母的」列表,並用自己的擴展。

我也有周圍那些少數情況下,你只是想覆蓋在頭部的一切:-)

+0

我想它是一個過多的模板塊或混亂的頭標籤之間的混搭 - 是否有任何理由相互比較? – shipwreck 2011-12-13 23:24:39