В Mezzanine/Django у меня есть несколько вложенных страниц, но только самая глубоко вложенная страница имеет контент. Для каждой промежуточной страницы я просто хочу показать меню ее непосредственных дочерних элементов. Например, учитывая макет:
Chapter 1
Section 1.1
Subsection 1.1.1
Subsection 1.1.2
Section 1.2
Subsection 1.2.1
Chapter 2
Section 2.1
Subsection 2.1.1
Страница, отмеченная как chapter-1
, должна просто показывать список
* Section 1.1
* Section 1.2
Я могу сделать это, создав собственные шаблоны для каждой главы и раздела, содержащие:
{% load pages_tags %}
{% page_menu "pages/menus/chapter_menu.html" %}
где chapter_menu.html
— мой шаблон меню:
{% load pages_tags %}
<ul>
{% for page in page_branch %}
{% if page.in_menu %}
{% if page.is_current_child %}
<li>
<a href="{{ page.get_absolute_url }}">{{ page.title }}</a>
</li>
{% else %}
{% page_menu page %}
{% endif %}
{% endif %}
{% endfor %}
</ul>
Однако имя каждого шаблона (например, pages/chapter-1.html
) должно соответствовать слагу страницы, на которую он ссылается, поэтому мне нужно дублировать эти шаблоны для каждой главы и каждого раздела.
Как правильно это сделать без дублирования шаблонов?