Я разработал панель навигации и мне нужен был способ прикрепить меню к некоторым страницам, но если я повторно использую меню и прикрепляю его на нескольких страницах, все раскрывающиеся списки открываются, если выбран один из подключенных узлов навигации.
В настоящее время я фильтрую узлы в шаблоне, поэтому я думаю, что меню определяет выбор по всем узлам, а не только по показанным.
Шаблон навигации (строка 219 - 237)
<div class="ci-evo-select">
<div class="hover h-100 w-100 pos-rel">
<a class="h-100 w-100" href="{{ child.get_absolute_url }}">
<span class="p-5vh-lr">{{ child.title }}{% if show_id %}{{ child.id }}{% endif %}</span>
</a>
<div class="dropdown w-100 pos-abs pos-bot-left ci-evo-weiß text-evo-block {% if child.selected %}show{% endif %}">
{% for drop in child.children %}
{% if drop.get_absolute_url == child.get_absolute_url %}
{# no child nodes #}
<div class="ci-evo-select hover">
<a class="w-100" href="{{ child.get_absolute_url }}#{{ drop.attr.identifier }}">
<span >{{ drop.title }}</span>
</a>
</div>
{% endif %}
{% endfor %}
</div>
</div>
</div>
cms_menus.py (завершено)
from menus.menu_pool import menu_pool
from menus.base import NavigationNode
from django.utils.translation import ugettext_lazy as _
from cms.menu_bases import CMSAttachMenu
from . import models
class AnchorAttachMenu(CMSAttachMenu):
name = _("AttachMenu")
def get_nodes(self, request):
nodes = [
# static nodes goes here
]
anchors = models.AnchorHookModel.objects.all()
for anchor in anchors:
n = NavigationNode(anchor.name, anchor.page.get_absolute_url(), anchor.parent.pk)
n.attr["identifier"] = anchor.identifier
n.selected = False
nodes.append(n)
return nodes
menu_pool.register_menu(AnchorAttachMenu)
есть ли способ получить узел навигации, к которому привязано меню?