我对django-cms的show_menu标签感到困惑。有四个参数,但没有找到关于这些参数的完整文档。只有几个exmaples但我找不到如何只在当前页面下显示菜单。
页面排列如下:
--Projects
----proj1
----proj2
--Gallery
----gal1
----gal2
在Projects
模板中,如何设置show_menu的参数以仅显示当前页面下的菜单?
@Brandon
我试过这个:
{% show_sub_menu 1 "menu/cust_menu.html" %}
正如文件所说的那样。但是它最终出现在这个错误中:
u'menu/cust_menu.html' could not be converted to Integer
答案 0 :(得分:2)
您需要使用:
{% show_sub_menu 1 %}
http://django-cms.readthedocs.org/en/2.1.3/advanced/templatetags.html#show-sub-menu
答案 1 :(得分: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> {{ child.get_menu_title|capfirst }}</a></div>
</div>
</div>
{% endif %}
{% endfor %}