【问题标题】:Add menu items in wagtail ModelAdminGroup在 wagtail ModelAdminGroup 中添加菜单项
【发布时间】:2022-11-27 09:31:52
【问题描述】:

我想在 ModelAdminGroup 中添加非 ModelAdmin 项目,例如 MenuItem,如下所示:

MenuItem('A title', '/some_url/', icon_name='doc-full-inverse', order=1)

但是我在 Wagtail 文档和 stackoverflow 上都找不到任何提示。

我的ModelAdminGroup 看起来像这样

class MyModelAdminGroup(ModelAdminGroup):
    menu_label = "Some stuff"
    menu_icon = "fa-suitcase"
    menu_order = 1
    items = (Model1Admin, Model2Admin)

我尝试这样做:

class MyModelAdminGroup(ModelAdminGroup):
    menu_label = "Some stuff"
    menu_icon = "fa-suitcase"
    menu_order = 1
    items = (Model1Admin, Model2Admin, MenuItem('A title', '/some_url/', icon_name='doc-full-inverse', order=1))

和其他一些愚蠢的东西

但我尝试的一切都崩溃了......

我终于找到了一个简单的解决方案。我只是把它写在下面以防它可以帮助社区其他人

【问题讨论】:

    标签: django wagtail wagtail-admin


    【解决方案1】:

    我终于想到了一个简单的解决方案:只需扩展我的自定义 ModelAdminGroup 类并编写一个特定的 get_submenu_items 方法:

    class MyModelAdminGroup(ModelAdminGroup):
        menu_label = "Some stuff"
        menu_icon = "fa-suitcase"
        menu_order = 1
        items = (Model1Admin, Model2Admin)
    
        def get_submenu_items(self):
            menu_items = super().get_submenu_items()
            menu_items.append(MenuItem('A title', '/some_url/', icon_name='doc-full-inverse', order=1))
            return menu_items
    

    希望能帮到有同样需求的人。

    【讨论】:

      猜你喜欢
      • 2020-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多