如何使用django-cms创建多个菜单

时间:2016-03-25 14:00:29

标签: python django django-cms

我正在尝试在我的django-cms应用程序中有两个单独的菜单。一个用于页眉,另一个用于页脚的不同链接:

[ Logo ]        Link_A Link_B Link_C Link_D


          ... content ...


      Link_E Link_F Link_G Link_H

{% show_menu %}中使用烘焙,将显示已注册的所有页面,链接A - H,并且不允许我将两个菜单分开。

如何创建两个单独的菜单?

1 个答案:

答案 0 :(得分:2)

取决于你想要做什么,但我有一个基本模板,顶部有一个导航菜单,底部有一个站点地图子菜单。

首先从导航开始;

{% show_menu 1 100 100 100 "partials/navigation.html" %}

使用模板;

{% load cms_tags menu_tags cache cms_page %}

{% for child in children %}

    <li>
        <a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}">
            {{ child.get_menu_title }}
        </a>
        {% if child.children and child.level <= 4 %}
            <ul>
                {% show_menu from_level to_level extra_inactive extra_active template '' '' child %}
            </ul>
        {% endif %}
    </li>

{% endfor %}

然后是站点地图;

{% show_sub_menu 2 1 1 "partials/sitemap.html" %}

sitemap.html

{% load cms_tags cms_page cache %}

{% if children %}

    {% for child in children %}

        <ul class="site-footer__column">
            <li>
                <h4>
                    <a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}">
                        {{ child.get_menu_title }}
                    </a>
                </h4>
            </li>

            {% if child.children %}
                {% for baby in child.children %}

                    <li class="footer_sub">
                        <a href="{{ baby.attr.redirect_url|default:baby.get_absolute_url }}">
                            {{ baby.get_menu_title }}
                        </a>
                    </li>
                {% endfor %}
            {% endif %}

        </ul>

    {% endfor %}
{% endif %}

了解您可以为菜单提供的选项(数字)可以让您显示网站的不同部分,但如果内置菜单标记不适合您的需求,您可以编写自定义菜单标记。

标准菜单文档在这里; http://docs.django-cms.org/en/3.2.2/reference/navigation.html

以下是自定义菜单的文档; http://docs.django-cms.org/en/3.2.2/how_to/menus.html