Django - 有什么方法可以从用户列表中隐藏超级用户吗?

mar*_*gue 3 django django-admin

(对不起,我的英语不好)

我想知道是否存在任何方法可以从 django admin 的用户列表中隐藏超级用户,如果查看列表的用户不是超级用户?

谢谢!

Aam*_*nan 6

您可以覆盖get_queryset用户管理的方法,并且仅根据登录用户返回结果:

myapp/admin.py

from django.contrib.auth.admin import UserAdmin as BaseUserAdmin

@admin.register(User)
class UserAdmin(BaseUserAdmin):
    def get_queryset(self, request):
        qs = super(UserAdmin, self).get_queryset(request)
        if not request.user.is_superuser:
            return qs.filter(is_superuser=False)
        return qs
Run Code Online (Sandbox Code Playgroud)