DjangoCMS/Django - определение, является ли текущая страница дочерней

Я хочу настроить шаблон sub_menu.html с помощью DjangoCMS и в настоящее время получил следующий код для меню:

{% if children %}
<div class="unit subnav">
<h3>{% page_attribute "menu_title" %}</h3>
<ul>
    {% for child in children %}
        <li class="{% if child.selected %}on{% endif %}{% if child.ancestor %}ancestor{% endif %}{% if child.sibling %}sibling{% endif %}{% if child.descendant %}descendant{% endif %}">
            <a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}" title="{{ child.get_menu_title }}">{{ child.get_menu_title }}</a>
        </li>
    {% endfor %}
    </ul>
</div>
{% endif %}

Таким образом, в основном это определяет, есть ли у страницы дочерние элементы, а затем добавляет поднавигацию, если дочерние элементы этой страницы существуют.

Все идет нормально.

Моя проблема в том, что когда я перехожу к самим дочерним страницам, меню исчезает, поэтому я хотел бы определить, является ли страница «дочерней» ниже уровня 1. Это должно остановить все страницы, имеющие навигацию (потому что они все дочерние элементы домашней страницы, я полагаю), но должны позволить тем, кто находится ниже основного уровня навигации, отображать меню.

Если кто-нибудь может протянуть руку или указать мне правильное направление, это было бы блестяще.


person Alex    schedule 04.09.2012    source источник


Ответы (1)


Хорошо, это может не иметь смысла для людей, но я смог добраться до сути с помощью следующего оператора if в моем шаблоне поднавигации...

{% if children or request.current_page.level > 0 %} subnav in here {% endif %}
person Alex    schedule 24.09.2012
comment
Шесть лет спустя все еще полезно! Решил мою проблему. Большое спасибо за вопрос и ответ. - person didierCH; 13.11.2018
comment
похоже, что в cms 3.6 все вещи, связанные с treebeard, находятся в свойстве node объекта страницы, например request.current_page.node.get_children (или get_depth, для эквивалента уровня). новым, но и крутым, так как у вас под рукой есть полный API Treebeard. - person benzkji; 18.06.2019