我想为导航,边栏,登录面板等页面的每个部分创建单独的模板。Django似乎使用继承而不是组合。我想知道是否有任何支持将模板分成部分并将模板特定模型传递给每个模板。我想的是这样的:django是否支持将你的模板分成几部分?
值= { 'navbar_data'= ... 'sidebar_data'= ... }
{{template.render( '导航栏',navbar_data)} } {{template.render('sidebar',sidebar_data)}}
我想为导航,边栏,登录面板等页面的每个部分创建单独的模板。Django似乎使用继承而不是组合。我想知道是否有任何支持将模板分成部分并将模板特定模型传递给每个模板。我想的是这样的:django是否支持将你的模板分成几部分?
值= { 'navbar_data'= ... 'sidebar_data'= ... }
{{template.render( '导航栏',navbar_data)} } {{template.render('sidebar',sidebar_data)}}
有很多好方法可以做到这一点。
您可以使用内建模板include
。此模板标签允许您使用和重新使用模板的特定片段。这通常对于表示单个模型并将在整个站点中使用的迷你模板最为有用。如果你与with
templatetag结合起来,让您在手艺所包含的模板中使用的背景下,这可能特别有用
或者只是简单地使用block
可能会给你觉得你正在寻找
最后你可以使用自定义包含模板标签(https://docs.djangoproject.com/en/1.4/howto/custom-template-tags/#inclusion-tags)为您提供更深层次的控制。这些将允许您使用完全自定义的上下文呈现子模板。
这就是templatetags的用途。你在一个名为MYAPP/templatetags/mytags.py文件中定义一个标签,然后在您的模板做
{% load mytags %}
{% navbar %} {% sidebar %}
的官方文档有很多这方面的信息。