在Django模板中只删除一个页面上的div



我有一个包含15个独立页面的网站。在每个页面上我都有一个名为header的div。我要通过JavaScript删除这个元素,像这样:

homepage.html

<script>
const element = document.getElementById('header');
element.remove();
</script>

问题是,我可以看到头元素一秒钟之前,它被删除。脚本放在页面的顶部。我也试着通过css来做,像这样:

.header {
height: 0rem !important;
visibility: hidden !important;
}

但是,当刷新页面时,我仍然看到元素消失了。

我知道我可以在我的base.html文件中创建一个模板块,并将其排除在主页。HTML页面中,但我需要手动将其包含在其他14个HTML文件中。

有没有其他更好的方法来排除div,这样我就不会在我的主页上看到它了?

一旦你理解了它的{% block %}的方式,Django的模板系统给你很大的灵活性来操作任何视图上的任何内容。标签工作,特别是与扩展(子)模板相关。

在你的例子中,你能做的就是把你的头html包装在base.html中像这样:

{% block my_header %}
<div class="header"></div>
{% endblock header %}
现在,在首页。html您只需添加以下内容(假设它扩展base.html):
{% extends "base.html" %}
...
{% block my_header %}{% endblock header %}

在这段代码中,你告诉Django用什么都不覆盖header块。我还建议阅读{{块。超级}}.

with css

.header {
display:none;
}

最新更新