DjangoCMS / Django - 检测当前页面是否为子页面

时间:2012-09-04 11:18:26

标签: django if-statement navigation parent-child django-cms

我希望使用DjangoCMS自定义sub_menu.html模板,并且目前有以下代码用于菜单:

{% 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级以下的“孩子”。这应该会阻止所有页面都有导航(因为它们“我认为主页上的所有孩子都是这样的”但是应该允许那些低于主要导航水平的人出现菜单。

如果有人可以伸出援助之手或指向正确的方向,那就太棒了。

1 个答案:

答案 0 :(得分:3)

好吧,它对人们来说可能没有意义,但是我能够通过我的subnav模板中的以下if语句来了解这个...

{% if children or request.current_page.level > 0 %} subnav in here {% endif %}