Django的员工用户管理自己的用户,他们只创建了

问题描述 投票:1回答:1

在我的Django应用程序,用户可以注册到网站,并从管理员接收staff_user权限。之后,工作人员用户可以创建和管理其他一些用户(普通用户)使用默认的Django管理站点。现在,我想,让员工用户查看和管理,他只从管理站点上创建的用户,我不想让他看到由其他工作人员用户创建其他用户。

我怎样才能做到这一点?我想我需要修改admin.py吧?

我使用Django 1.11版本

python django django-admin
1个回答
0
投票

是的,你需要重写你的admin.py一些方法。下面的事情需要应用。

  1. 更新用户模型添加CREATED_BY场
  2. 覆盖保存方法在管理设置CREATED_BY场
  3. 覆盖得到查询集的方法来筛选基于CREATED_BY用户的列表。 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()
© www.soinside.com 2019 - 2024. All rights reserved.