Django:按用户角色过滤用户
Django: Filter users by user role
我正在为我的网络应用程序使用 Django 管理站点,但我遇到了问题。我需要员工用户可以更改、创建和删除其他员工用户,但我不希望他们更改超级用户的信息。我想知道是否可以按角色过滤用户列表(员工用户看不到列表中的超级用户)。
您将需要为用户模型创建自定义 ModelAdmin。我建议你从原来的继承,然后你可以覆盖 get_queryset
方法。
你的结尾应该是:
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class MyUserAdmin(UserAdmin):
def get_queryset(self, request):
qs = super(MyUserAdmin, self).get_queryset(request)
if request.user.is_superuser:
return qs
else:
return qs.filter(is_superuser=False)
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
终于我找到了如何做到这一点,我把代码留在这里以防万一有人遇到和我一样的问题
def get_queryset(self, request):
queryset = super(UserAdmin, self).get_queryset(request)
if request.user.is_superuser:
return queryset
return queryset.filter(is_superuser=False)
我正在为我的网络应用程序使用 Django 管理站点,但我遇到了问题。我需要员工用户可以更改、创建和删除其他员工用户,但我不希望他们更改超级用户的信息。我想知道是否可以按角色过滤用户列表(员工用户看不到列表中的超级用户)。
您将需要为用户模型创建自定义 ModelAdmin。我建议你从原来的继承,然后你可以覆盖 get_queryset
方法。
你的结尾应该是:
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class MyUserAdmin(UserAdmin):
def get_queryset(self, request):
qs = super(MyUserAdmin, self).get_queryset(request)
if request.user.is_superuser:
return qs
else:
return qs.filter(is_superuser=False)
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
终于我找到了如何做到这一点,我把代码留在这里以防万一有人遇到和我一样的问题
def get_queryset(self, request):
queryset = super(UserAdmin, self).get_queryset(request)
if request.user.is_superuser:
return queryset
return queryset.filter(is_superuser=False)