小编Sat*_*iva的帖子

Django CMS多级下拉菜单

我是Django CMS的新手,我尽力避免询问,但这个让我发疯.我创建了一个带有Topic和Category模型的Wiki应用程序.我将它连接到CMS上的网站并将其添加到我的菜单中.现在,我希望能够在我的菜单上显示所有顶级类别,他们的子类别和主题,以及这些类别的子类别等.

Menu/Navigation should look like this:

Wiki
    Category1
        Category1.1
            Topic
        Category1.2
        Topic
    Category2
        Topic
    Category3
        ...

Right now i can only show the Top categories:

Wiki
    Category1
    Category2
    Category3
Run Code Online (Sandbox Code Playgroud)

我已经创建了一个menu.py来获取我的Wiki上的自定义子菜单(您在上面看到的那个):

menu.py

class WikiSubMenu(CMSAttachMenu):
    name = _("Wiki Sub-Menu")

    def get_nodes(self, request):
        nodes = []
        categories = Category.objects.filter(parent_id__isnull=True)

        for c in categories:
            node = NavigationNode(
                mark_safe(c.name),
                c.get_absolute_url(),
                c.id,

            )

            nodes.append(node)

        return nodes

menu_pool.register_menu(WikiSubMenu)
Run Code Online (Sandbox Code Playgroud)

我的分类型号:

class Category(models.Model):
    ''' Category model. '''
    name = models.CharField(max_length=100)
    slug = models.SlugField(unique=True)
    description = models.TextField(blank=True)
    parent = …
Run Code Online (Sandbox Code Playgroud)

recursion menu tree-structure parent-child django-cms

4
推荐指数
1
解决办法
3644
查看次数