Удаление div только на одной странице в шаблоне Django
У меня есть сайт, который содержит 15 отдельных страниц. На каждой странице у меня есть div с именем header. Я знаю, что удаляю этот элемент с помощью JavaScript следующим образом:
homepage.html
<script>
const element = document.getElementById('header');
element.remove();
</script>
Проблема в том, что я вижу элемент заголовка в течение секунды, прежде чем он удаляется. Скрипт размещается в верхней части страницы. Я также пытался сделать это с помощью css следующим образом:
.header {
height: 0rem !important;
visibility: hidden !important;
}
Однако я все еще вижу, что элемент исчезает при обновлении страницы.
Я знаю, что могу создать блок шаблона в файле base.html и просто исключить его на странице homepage.html, но мне нужно будет включить его в остальные 14 HTML-файлов вручную.
Вопрос Есть ли другой/лучший способ исключить div, чтобы я вообще не видел его на моей домашней странице?
с помощью css
.header {
display:none;
}
Система шаблонов Django дает вам огромную гибкость в манипулировании любым содержимым в любом представлении, как только вы поймете, как работает тег {% block %}, особенно в отношении расширенных (дочерних) шаблонов.
В вашем случае, что вы можете сделать, это обернуть ваш заголовок html в base.html следующим образом:
{% block my_header %}
<div class="header"></div>
{% endblock header %}
Теперь, в homepage.html вы просто добавляете это (предполагая, что он расширяет base.html):
{% extends "base.html" %}
...
{% block my_header %}{% endblock header %}
Этим куском кода вы говорите Django перезаписать блок заголовка ничем. Я также рекомендую ознакомиться с {{ block.super }}.