Добавление пунктов меню в wagtail ModelAdminGroup

Я хочу добавить не ModelAdmin элементы в ModelAdminGroup, как, например, 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))

И некоторые другие идиотские вещи

Но все мои попытки потерпели крах...

Наконец-то я нашел простое решение. Я просто пишу его ниже на случай, если это может помочь другим людям

В конце концов я пришел к тривиальному решению: просто расширить мой пользовательский класс 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

Надеемся, что это поможет людям с такой же потребностью.

Вернуться на верх