繁体   English   中英

Django员工用户管理仅创建的自己的用户

[英]Django staff users manage their own users that they have created only

在我的Django应用中,用户可以注册到该站点并从管理员那里获得staff_user特权。 之后,职员用户可以使用默认的django管理站点创建和管理其他一些用户(普通用户)。 现在,我想让工作人员用户仅查看和管理他在管理站点中创建的用户,但我不希望他看到其他工作人员用户创建的其他用户。

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

我正在使用Django 1.11版

是的,您需要在admin.py中覆盖一些方法。 需要执行以下操作。

  1. 更新用户模型以添加created_by字段
  2. 覆盖管理员中的保存方法以设置created_by字段
  3. 重写get queryset方法可基于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() 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM