Страница, к которой вы прикрепляете свое приложение, является последней точкой, о которой система меню знает, пока вы не интегрируете меню для своего приложения.
Добавление меню позволяет URL-адресам вашего приложения интегрироваться с приложением меню через NavigationNode(title, url, id)
объектов для ваших URL.
Так что, если у вас есть подробный вид, вы можете прикрепить простое меню;
from menus.base import NavigationNode
from menus.menu_pool import menu_pool
from django.utils.translation import ugettext_lazy as _
from cms.menu_bases import CMSAttachMenu
class EventMenu(CMSAttachMenu):
name = _("event menu")
def get_nodes(self, request):
nodes = []
n = NavigationNode(_('detail page'), "/detail", 1)
nodes.append(n)
return nodes
menu_pool.register_menu(EventMenu)
Документы на это здесь;http://docs.django -cms.org / ru / latest / how_to / menus.html # integra-attach-menus
На основании вышеизложенного можно также создавать узлы на основе списков / наборов запросови т.д., как вы нашли с небольшим расследованием;
def get_nodes(self, request):
nodes = []
for event in Event.objects.published():
n = NavigationNode(
event.title, # title
event.get_absolute_url(), # url
'id_{slug}'.format(slug=event.slug), # unique ID for node
visible=False
)
nodes.append(n)
return nodes