Django模板/我在哪个模板上并使用IF作为此模板

时间:2013-09-11 19:50:39

标签: django python-2.7 django-views django-templates

有一个网站,我有一个div黑色矩形用作页脚,数据从页脚内的DB中提取。

我想在除了INDEX.HTML主页(模板)之外的django模板目录中创建的每个模板上显示此页脚。如果我将它放入BASE.HTML它将无处不在,如果我将它传播到我的所有20个模板,除了INDEX.HTML我需要编辑每个模板中的数据在页脚我不想这样做。如何在除INDEX.HTML之外的所有模板中显示页脚,但仅使用它一次来编辑页脚中的数据。是否有一个django命令或像IF模板= index.html隐藏页脚等类似的逻辑或什么是实现这一目标的最佳方法?

由于

1 个答案:

答案 0 :(得分:1)

您可以将block tag用于此目的。

  

如果您发现自己在多个模板中复制内容,则可能意味着您应将该内容移至父模板中的{% block %}

更多documentation here

base.html

中的

{% block footer_content %}
    {# contents here #}
{% endblock %}

并在index.html

{% block footer_content %}
    {# this overwrites the base footer_content to empty block #}
{% endblock %}

这将仅删除index.html中的内容,并且可以从base.html继承的所有其他网页上获取

现在,如果您希望向某些网页添加更多内容,

{% block footer_content %}
    {{ block.super }}
    {# more content here #}
{% endblock %}