如何创建包含当前页面的子元素的夹层菜单

时间:2015-05-31 04:35:14

标签: django django-templates mezzanine

我想创建一个菜单来处理有关当前页面及其兄弟姐妹的信息,例如,如果我有以下树:

enter image description here

如果我在页面Child 1,我的菜单应该只显示Page 1children 1-3

这可以通过以下代码实现:

<a href="{{ page.parent.get_absolute_url }}">{{ page.parent.title }}</a>

<ul>
    {% page_menu page.parent %}
</ul>

我遇到的问题是,如果我位于Child 2,我想显示Grand Child 1 and 2。我该怎么做?

我尝试了以下内容:

<ul>
{% for page in branch_page %}
    {% if page.is_current_sibling %}
     <li><a href="{{ page.get_absolute_url }}"> {{ page.title }}</a>
          {% if page.is_current_or_ascendant %}
             {% page_menu page %}
          {% endif %}  
    {% endif %}
{% endfor %}
</ul>

但是它不起作用并且它没有显示任何错误,我怎么能以另一种方式做到这一点?

1 个答案:

答案 0 :(得分:1)

page_menu模板标签允许您传入一个可选的父页面,以及一个递归用于渲染子页面的菜单模板,例如“page”是当前页面的位置: {%load pages_tags%} {%page_menu page“pages / menus / tree.html”%}

参考:https://groups.google.com/forum/#!msg/mezzanine-users/Fk2Nm6K6qho/VyePF5D6CXgJ