django 在wagtail ModelAdminGroup中添加菜单项

vuktfyat  于 2022-12-01  发布在  Go
关注(0)|答案(1)|浏览(135)

我想在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))

还有其他一些愚蠢的东西
但我的努力都失败了...
我终于找到了一个简单的解决办法。我只是把它写得很低,以防万一它可以帮助社区其他人

lmvvr0a8

lmvvr0a81#

我终于想出了一个微不足道的解决办法:只是扩展我的定制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

相关问题