如何使用{%show_menu_below_id%}在django cms中获取特定子页面?

时间:2016-09-28 16:14:37

标签: python django django-cms

我的DjangoCMS具有以下结构:

- Page a
----第a.1页 ----第a.2页 ----第a.3页 ----第a.4页

使用{%show_menu_below_id" Page a"%}显示:

<ul>
   <li> Page a.1</li>
   <li> Page a.2</li>
   <li> Page a.3</li>
   <li> Page a.4</li>
</ul>

我需要在navegation菜单中显示两个separeted列,例如:

<ul>
   <li> Page a.1</li>
   <li> Page a.2</li>
</ul>
<ul>
   <li> Page a.3</li>
   <li> Page a.4</li>
</ul>

如何获得一些子页面?

1 个答案:

答案 0 :(得分:1)

为菜单指定自定义HTML时,您可以做很多事情。模板标记如下:

{% show_menu 0 100 100 100 "menu_top.html" %}

在menu_top.html中,您有一个名为children的变量,方便您使用。您可以使用for循环计数器来确定何时插入其他HTML并拆分列表,或者您可以使用菜单项的其他参数(即他们是否有孩子等)。您甚至可以在需要自定义参数时创建菜单修改器并增强导航树。

以下是Django CMS repo中的一个示例:

{% load menu_tags %}

{% for child in children %}
<li class="child{% if child.selected %} selected{% 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 }}">{{ child.get_menu_title }}</a>
    {% if child.children %}
    <ul>
        {% show_menu from_level to_level extra_inactive extra_active template "" "" child %}
    </ul>
    {% endif %}
</li>
{% endfor %}