通过 django 用户权限限制管理菜单项

Restrict admin menu items by django user permission

我正在扩展 wagtail,我正在使用下一个钩子: python @hooks.register('register_settings_menu_item') def register_django_admin_menu_item(): return MenuItem(_('Site Admin'), '/django-admin', classnames='icon icon-wagtail-inverse', order=20000)

我得到了 django 管理页面的 link,但我想将该项目限制为仅具有员工权限的用户。

我该怎么做?

有一个装饰器:

from django.contrib.admin.views.decorators import staff_member_required

@staff_member_required
@hooks.register('register_settings_menu_item')
def register_django_admin_menu_item():
    return MenuItem(_('Site Admin'), '/django-admin', classnames='icon icon-wagtail-inverse', order=20000)

试试这个:

    class CustomAdminMenuItem(MenuItem):
        def is_shown(self, request):
            return request.user.is_staff


    @hooks.register('register_admin_menu_item')
    def register_custom_admin_menu_item():
        return CustomAdminMenuItem(_('Site Admin'), reverse('admin_menu'), classnames='icon icon-folder-inverse', order=20000)