大家好我是Django框架的新手,希望有人能帮我解决目前的困境:)
我为我的项目设置了基本模板。我有一个main-content
区域和一个side-bar
我为side bar
创建了一个包含:
{% include "modules/include/sidebar.html" %}
问题是我有两个不同的侧边栏,我想根据用户所在的页面进行渲染,例如如果用户在主页上,则使用
{% include "modules/include/sidebar.html" %}
但如果用户在文章页面上,则使用
{% include "modules/include/article-sidebar.html" %}
我查看了文档但找不到任何可以帮助我解决此问题的内容。
所有和任何帮助将不胜感激。
答案 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