Django django_suit:如何创建二级菜单?

时间:2019-05-27 09:14:25

标签: django menu admin

Django 2.2,django-suit == 0.2.26 这是django_suit问题,而不是django。

我在settings.py中定义了一个平面菜单,每个项目都是管理员视图中的链接:

SUIT_CONFIG = {
    'ADMIN_NAME': 'MyAdminName',
    'MENU': (
        'sites',
        '-',
        {
         'label': 'MenuItem1',
         'url': SCRIPT_NAME + '/some_view1',
        },
        {
         'label': 'MenuItem2',
         'url': SCRIPT_NAME + '/some_view2',
        },
        {
         'label': 'MenuItem3',
         'url': SCRIPT_NAME + '/some_view3',
        }
    }
}

我想使其作为两级菜单工作,该菜单在鼠标悬停时打开。

对于这样的应用程序模型,可以很容易地做到这一点:

SUIT_CONFIG = {
    'ADMIN_NAME': 'MyAdminName',
    'MENU': (
        'sites',
        '-',
        {'app': 'MyApp',
         'label': 'MenuLabelTopLevel',
         'models': ('MyModel1', 'MyModel2', 'MyModel3')
        }
    }
}

当我将鼠标放在MenuLabelTopLevel上方时,会出现一个'MyModel1', 'MyModel2', 'MyModel3'下拉列表。

我正在寻找使我的应用程序中的任意视图列表具有相同功能的语法,这行代码如下:

SUIT_CONFIG = {
    'ADMIN_NAME': 'MyAdminName',
    'MENU': (
        'sites',
        '-',
        {'app': 'MyApp',
         'label': 'MenuLabelTopLevel',
         'link_list': (SCRIPT_NAME + '/some_view1',SCRIPT_NAME + '/some_view2', SCRIPT_NAME + '/some_view3')
        }
    }
}

django_suit中是否存在此功能?该文档对此没有示例。如果没有,也许是一些类似的django软件包(这将允许我在现有的管理菜单中执行此操作,而不是在页面顶部创建一些新菜单)?

谢谢

1 个答案:

答案 0 :(得分:0)

我找到了一种方法。不需要新的关键字,只需将它们作为“标签和网址”键值字典的列表放入“模型”即可。

SUIT_CONFIG = {
    'ADMIN_NAME': 'MyAdminName',
    'MENU': (
        {'label': 'MenuLabelTopLevel', 
            'models': [
                {
                    'label': 'SubMenuItem1',
                    'url': SCRIPT_NAME + '/some_view1',
                },
                {
                    'label': 'SubMenuItem1',
                    'url': SCRIPT_NAME + '/some_view1',
                 }
            ]
        }
    )

只有一点不便之处:这些第二级项目列表中的分隔符('-')被忽略。