У меня есть следующая структура шаблона:
base.html:
<html>
<head>
</head>
<body>
<div class="main-content">
{% block body %}{% endblock %}
</div>
</body>
</html>
detail.html расширение base.html:
{% extends "base.html" %}
{% block body %}
<!-- filter side panel -->
{% block filter_panel %}
{% endblock %}
{% endblock %}
list.html расширение base.html:
{% extends "base.html" %}
{% block body %}
<!-- filter side panel -->
{% block filter_panel %}
{% endblock %}
{% endblock %}
filter.html:
{% extends "detail.html" %}
{% block filter_panel %}
...
...
{% endblock%}
Теперь я реализовал панель фильтров, которая вызывается кнопкой, используя onclick="filter_open()"
.Соответствующий метод находится во внешнем файле JS и в основном открывает боковую панель:
function filter_open() {
document.getElementById("filtersidebar").style.display = "block";
document.getElementById("filtersidebar-outer").classList.add("fc-filters-overlay");
}
Этот фильтр я хочу сделать доступным на detail.html и list.html.Итак, я создал новый файл filter.html
.И detail.html
, и list.html
имеют {% block filter %}{% endblock %}
, а в filter.html
я добавляю функциональность в соответствующие блоки Django.
Однако кнопка теперь выдает ошибку:
Uncaught TypeError: Cannot read property 'style' of null
at filter_open (main.js:146)
at HTMLButtonElement.onclick ((index):158)
Полагаю, это потому, что я переместил фильтр в «filter.html».