2012-04-18 50 views
0

我想爲導航,邊欄,登錄面板等頁面的每個部分創建單獨的模板。Django似乎使用繼承而不是組合。我想知道是否有任何支持將模板分成部分並將模板特定模型傳遞給每個模板。我想的是這樣的:django是否支持將你的模板分成幾部分?

值= { 'navbar_data'= ... 'sidebar_data'= ... }

{{template.render( '導航欄',navbar_data)} } {{template.render('sidebar',sidebar_data)}}

回答

2

有很多好方法可以做到這一點。

您可以使用內建模板include。此模板標籤允許您使用和重新使用模板的特定片段。這通常對於表示單個模型並將在整個站點中使用的迷你模板最爲有用。如果你與with templatetag結合起來,讓您在手藝所包含的模板中使用的背景下,這可能特別有用

或者只是簡單地使用block可能會給你覺得你正在尋找

最後你可以使用自定義包含模板標籤(https://docs.djangoproject.com/en/1.4/howto/custom-template-tags/#inclusion-tags)爲您提供更深層次的控制。這些將允許您使用完全自定義的上下文呈現子模板。

0

這就是templatetags的用途。你在一個名爲MYAPP/templatetags/mytags.py文件中定義一個標籤,然後在您的模板做

{% load mytags %} 

{% navbar %} {% sidebar %} 

的官方文檔有很多這方面的信息。

相關問題