2

我完全被 django-cms 的 show_menu 标签弄糊涂了。有四个参数,但找不到关于这些参数的完整文档。只有几个例子但是我找不到如何仅在当前页面下显示菜单。

页面排列如下:

--Projects
----proj1
----proj2
--Gallery
----gal1
----gal2

Projects模板中,如何设置 show_menu 的参数以仅显示当前页面下的菜单?

更新

@布兰登

我正是这样尝试的:

{% show_sub_menu 1 "menu/cust_menu.html" %}

正如文件所说的那样。但是它最终会出现此错误:

u'menu/cust_menu.html' could not be converted to Integer
4

2 回答 2

2

你需要使用:

{% show_sub_menu 1 %}

http://django-cms.readthedocs.org/en/2.1.3/advanced/templatetags.html#show-sub-menu

于 2013-10-10T13:16:19.830 回答
0

文档中实际上存在错误,并且似乎也是在 django cms 的最后一个版本中引入的一个小错误(计划在 django-cms 3.0 版本中解决!)。

https://github.com/divio/django-cms/issues/1913

我用这个解决了:

{% show_menu_below_id "topics_page" 0 4 100 100 "./_menus/menu_topics.html" %}

其中“topics_page”是反向 id(您在 cms admin 的高级部分中配置它)。

对于菜单的递归渲染,只需配置要显示下一级菜单的子页面的自定义 id;

在您的自定义菜单模板中,您可以使用子属性和 for 循环计数器。下面,检查一个讨厌的例子,但如果你想自定义你的菜单模板仍然很有用:

{% load menu_tags %}
{% load template_extras %}

{% for child in children %}
    {#    sub voices topics   #}

    {% if child.level == 1 %}
        {% if not forloop.counter|divisibleby:2 %}
            <div class="row-fluid">
        {% endif %}
    <div class="span6">
        <div class="sub1">
            <a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}"><span
                    class="icon-play"></span>{{ child.get_menu_title|capfirst }}</a>
        </div>
        {% if child.children %}
            {% show_menu_below_id child.attr.reverse_id 0 4 100 100 template %}
        {% endif %}
    </div>
    {% if forloop.counter|divisibleby:2 %}
        </div> <!-- end row fluid -->
    {% endif %}


    {% elif child.level == 2 %}
        {#        2 - {{ child.attr.reverse_id}} - {{ child.get_menu_title }}#}
        <div class="row-fluid">
            <div class="span11 offset1">
                <div class="sub2">
                    <a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}">{{ child.get_menu_title|capfirst }}
                    </a></div>
            </div>
        </div>
        {% if child.children %}
            {% show_menu_below_id child.attr.reverse_id 0 4 100 100 template %}
        {% endif %}
    {% elif child.level == 3 %}
        {#    leaf node topics   #}
        {#        3 - {{ child.attr.reverse_id}} - {{ child.get_menu_title }}#}
        <div class="row-fluid">
            <div class="span10 offset2">
                <div class="sub3"><a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}">
                    <i class="icon-list-alt"></i> &nbsp;{{ child.get_menu_title|capfirst }}</a></div>
            </div>
        </div>
    {% endif %}
{% endfor %}
于 2014-02-12T16:25:47.353 回答