gpt4 book ai didi

python - Django 员工用户仅管理他们自己创建的用户

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:49 25 4
gpt4 key购买 nike

在我的 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()

关于python - Django 员工用户仅管理他们自己创建的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54547276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com