【问题标题】:How to hide admin users from django admin site如何从 django 管理站点隐藏管理员用户
【发布时间】:2018-02-23 09:13:12
【问题描述】:

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

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

【问题讨论】:

    标签: django django-admin


    【解决方案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)
    

    【讨论】:

      【解决方案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)
      

      您可以在要更改显示的那个型号的admin.py 中更改queryset

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-04
        • 2015-03-21
        • 1970-01-01
        • 2015-03-27
        相关资源
        最近更新 更多