Django包括 - 使用正确的包含取决于页面

时间:2016-02-02 13:24:26

标签: django include block

大家好我是Django框架的新手,希望有人能帮我解决目前的困境:)

我为我的项目设置了基本模板。我有一个main-content区域和一个side-bar

我为side bar创建了一个包含:

{% include "modules/include/sidebar.html" %}

问题是我有两个不同的侧边栏,我想根据用户所在的页面进行渲染,例如如果用户在主页上,则使用

{% include "modules/include/sidebar.html" %}

但如果用户在文章页面上,则使用

{% include "modules/include/article-sidebar.html" %}

我查看了文档但找不到任何可以帮助我解决此问题的内容。

所有和任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

在基本模板中创建一个块,例如{% block sidebar %}{% endblock %}

然后在您的主页模板中执行

{% extends 'your-base-template-name-here' %}

{% block sidebar %}
     {% include "modules/include/sidebar.html" %}
{% endblock %}

在您的文章模板中使用

{% extends 'your-base-template-name-here' %}

{% block sidebar %}
     {% include "modules/include/article-sidebar.html" %}
{% endblock %}

有关模板继承的更多信息,请https://docs.djangoproject.com/en/1.9/ref/templates/language/#id1