Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django不同组织中的管理员、用户和组_Python_Django_Django Admin_Django Permissions - Fatal编程技术网

Python Django不同组织中的管理员、用户和组

Python Django不同组织中的管理员、用户和组,python,django,django-admin,django-permissions,Python,Django,Django Admin,Django Permissions,我正在创建一个Django应用程序,面向将有多个用户的组织。所以在模型中,我有组织和用户,组织应该是独立的 组织中第一个注册的用户将是admin,下一个注册的用户将是employees。管理员可以创建用户组(用户组/角色)来设置应用程序中员工的权限 Django已经允许这样做了,但是Django管理员可以编辑所有用户,对吗?有没有一种方法可以让组织中的经理只查看和编辑其员工权限,而不查看数据库中的所有用户?您可以做的是在ModelAdmin上覆盖您的get\u queryset class Cl

我正在创建一个Django应用程序,面向将有多个用户的组织。所以在模型中,我有组织和用户,组织应该是独立的

组织中第一个注册的用户将是admin,下一个注册的用户将是employees。管理员可以创建用户组(用户组/角色)来设置应用程序中员工的权限


Django已经允许这样做了,但是Django管理员可以编辑所有用户,对吗?有没有一种方法可以让组织中的经理只查看和编辑其员工权限,而不查看数据库中的所有用户?

您可以做的是在
ModelAdmin
上覆盖您的
get\u queryset

class ClassAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super(ClassAdmin, self).get_queryset(request)
        if your_condition:
            return qs.filter(b='bar')
        return qs.filter(b='foo')

当您向管理员注册您的类时,不要忘记执行
admin.site.register(class,ClassAdmin)

您所说的
谁只能查看和编辑其员工权限,而不能查看数据库中的所有用户是什么意思
?Django管理员可以在Django admin页面中查看所有用户并编辑其权限。我希望有几个不同的组织(用户组),每个组织有一个管理员,他们只能看到这个组织的用户并编辑他们的权限。这是一个很好的技巧,有没有办法让一个全局超级管理员能够查看和编辑所有内容?是的,当然。。在这种情况下,如果request.user.is\u superuser:
return
qs.objects.all()
Ok谢谢您的帮助,我的最后一个问题是是否可以限制显示现有权限的查询?我的意思是,我们将拥有允许用户管理组织的社交帐户的权限,因此我们只需要显示管理当前正在编辑的用户的组织的社交帐户的权限。我希望这很清楚,我不能完全理解你的想法,但我认为你想要的是使用权限来限制显示的内容,对吗?或者你想使用Django中的内置权限系统?好的,我想看看我是否可以使用Django中的内置权限来做我想做的事情,我想让每个组织的管理员都能够编辑这个组织的用户(你通过修改Django查询帮我做到了这一点),现在,我希望组织的管理员只查看该组织的权限(权限将特定于每个组织),是否可以对每个组织进行个性化设置?谢谢