2017-04-13 61 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文件的頂部。