在我的Django应用程序,用户可以注册到网站,并从管理员接收staff_user权限。之后,工作人员用户可以创建和管理其他一些用户(普通用户)使用默认的Django管理站点。现在,我想,让员工用户查看和管理,他只从管理站点上创建的用户,我不想让他看到由其他工作人员用户创建其他用户。
我怎样才能做到这一点?我想我需要修改admin.py吧?
我使用Django 1.11版本
是的,你需要重写你的admin.py一些方法。下面的事情需要应用。
class ProfileAdmin(admin.ModelAdmin):
list_display = ("username",)
model = Profile
def get_queryset(self, request):
qs = super().get_queryset(request)
if request.user.is_superuser:
return qs
return Profile.objects.filter(created_by=request.user) or qs.none()
def save_model(self, request, obj, form, change):
if change:
obj.modified_by = request.user
else:
obj.created_by = request.user
obj.save()