如何从django管理站点隐藏管理员用户

时间:2017-09-14 11:43:06

标签: django django-admin

默认情况下,django admin会显示管理站点上的所有用户。我正在开发一个应用程序,客户只想显示从移动设备或网络注册的用户,而不是管理员用户。如何在django管理站点上应用查询?请帮忙。提前谢谢。

def queryset(self, request):
    if not request.user.is_superuser:
        return User.objects.all()
    return User.objects.filter(is_superuser=False)

2 个答案:

答案 0 :(得分:2)

class MyModelAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super(MyModelAdmin, self).get_queryset(request)
        if request.user.is_superuser:
            return qs
        return qs.filter(your_filter)

您可以更改该模型的queryset中要更改显示的admin.py

答案 1 :(得分:1)

您可以为此重写ModelAdmin的get_queryset方法:

class UserAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super(UserAdmin, self).get_queryset(request)
        qs = qs.filter(is_superuser=False)
        return qs

admin.site.register(User, UserAdmin)