Добавление пунктов меню в 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
Надеемся, что это поможет людям с такой же потребностью.