我需要在菜单项中添加css类。我无法弄清楚如何做到这一点......
我正在使用Django CMS,但不希望客户端改变菜单。 这就是我到目前为止所做的:
from menus.base import Menu, NavigationNode
from menus.menu_pool import menu_pool
from django.utils.translation import ugettext_lazy as _
class MyMenu(Menu):
def get_nodes(self, request):
nodes = []
n1 = NavigationNode(_('Start'), "/", 1)
n2 = NavigationNode(_('Item 1'), "item1/", 2)
n3 = NavigationNode(_('Item 2'), "item2/", 3)
nodes.append(n1)
nodes.append(n2)
nodes.append(n3)
return nodes
menu_pool.register_menu(MyMenu)
我的菜单看起来像这样:
<ul>
<li class="child selected"><a href="/">Start</a></li>
<li class="child sibling"><a href="item1/">Item 1</a></li>
<li class="child sibling"><a href="item2/">Item 2</a></li>
</ul>
但我希望它是这样的:
<ul>
<li class="start child selected"><a href="/">Start</a></li>
<li class="item1 child sibling"><a href="item1/">Item 1</a></li>
<li class="item2 child sibling"><a href="item2/">Item 2</a></li>
</ul>
所以我认为我需要一个修饰语,但我找不到合适的文档。
我对Django很新,所以我肯定我很想念,但我希望能够一步一步地完成它:)提前谢谢!
答案 0 :(得分:1)
show_menu标记呈现当前页面的导航。如果向项目添加menu / menu.html模板,则可以覆盖外观和HTML。 from the docs
所以在你的menu.html中你会有类似的东西:
{% for child in children %}
here you can adjust the apperance
{% endfor %}
这是我用于我的项目的menu.html:http://pastebin.com/jMzz1GqE
答案 1 :(得分:1)
感谢doniyor,我设法让事情得到解决。
我添加了每个菜单项:
n2 = NavigationNode(_('Item 1'), "item1/", 2, attr={'class': 'item1-class'})
然后在菜单模板中:
<a class="{{ child.attr.class }}" ...