2017-04-13 29 views
2

我是django和django-cms的新手。我阅读官方文档并试图在互联网上找到任何其他信息,这可以指导我通过在django cms中制作下拉菜单。但不幸的是,对我来说,官方文档真的很粗糙(我根本不懂它的菜单),在互联网上也没有什么明智的。开发django-cms下拉菜单

请解释我或给出一个一步一步的指导这个话题。

在这一刻菜单正在工作,我唯一的代码是一对<ul>和这{% show_menu 0 100 100 100 %}里面。

+0

'show_menu'标签将创建一个页面列表,其后的数字告诉它它要显示的页面树的哪些部分。你究竟需要什么?我建议改变你的页面结构,看看菜单是如何改变的,然后改变'show_menu'标签中的数字来看看改变的方式。 –

回答

3

最简单的方式来获得的下拉列表中工作的Django-CMS是遵循这样的: (在这个例子中我使用的引导代码为我的菜单)

  1. 在你base.html文件文件(或您使用的任何其他名称)使用这种方式显示您的菜单{%show_menu 0 10 10 10%} 作为示例,这是我在base.html中用于呈现菜单的代码中使用的:

    <ul> {% show_menu 0 10 10 10 "menu/custom-menu.html" %} </ul>

  2. 现在在目录中创建模板“/templates/menu/custom-menu.html”这些sekizai标签和类似的HTML代码,将覆盖base.html文件,并与下拉元素渲染您的菜单:

    <div class="dropdown"> {% for child in children %} <!-- no child pages --> {% if child.is_leaf_node %} <li><a href="{{ child.get_absolute_url }}">{{child.get_menu_title }}</a></li> {% endif %} <!-- /no child pages --> <!-- has child pages --> {% if not child.is_leaf_node or child.ancestor %} <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> {{child.get_menu_title }}<b class="caret"></b></a> <ul class="dropdown-menu"> {% if child.get_descendants %} {% for kid in child.get_descendants %} <li> <a href="{{ kid.get_absolute_url }}"> {{kid.get_menu_title }} </a> </li> {% endfor %} {% endif %} </ul> </li> {% endif %} <!-- /has child pages --> {% endfor %} <!-- /end for child --> </div>

  3. 不要忘记把{% load menu_tags %} sekizai标签在您的自定义menu.html文件的顶部。