[英]Django staff users manage their own users that they have created only
在我的Django应用中,用户可以注册到该站点并从管理员那里获得staff_user特权。 之后,职员用户可以使用默认的django管理站点创建和管理其他一些用户(普通用户)。 现在,我想让工作人员用户仅查看和管理他在管理站点中创建的用户,但我不希望他看到其他工作人员用户创建的其他用户。
我怎样才能做到这一点? 我想我需要修改admin.py对吗?
我正在使用Django 1.11版
是的,您需要在admin.py中覆盖一些方法。 需要执行以下操作。
重写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.