Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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 Permissions - Fatal编程技术网

Python Django中的功能权限

Python Django中的功能权限,python,django,django-permissions,Python,Django,Django Permissions,在Django中是否有一种内置的方式来为用户分配功能权限?看起来Dajngo权限绑定到模型 例如,我想创建4种类型的用户组:普通用户、管理员、管理员和超级管理员 默认情况下,不同组中的用户将有权执行不同类型的操作。例如,Admin组中的用户可以执行Task1、Task2和Task3,但Managers组中的用户只能执行Task1和Task2(无论这些任务在哪个应用程序中) 此外,可以修改用户权限,以便用户撤销对执行特定任务的访问权限。例如,默认情况下,所有管理员都可以执行Task1、Task2和

在Django中是否有一种内置的方式来为用户分配功能权限?看起来Dajngo权限绑定到模型

例如,我想创建4种类型的用户组:普通用户、管理员、管理员和超级管理员

默认情况下,不同组中的用户将有权执行不同类型的操作。例如,Admin组中的用户可以执行Task1、Task2和Task3,但Managers组中的用户只能执行Task1和Task2(无论这些任务在哪个应用程序中)

此外,可以修改用户权限,以便用户撤销对执行特定任务的访问权限。例如,默认情况下,所有管理员都可以执行Task1、Task2和Task3,但特定管理员的权限可以修改为仅执行Task1和Task3

这可以通过内置Django权限和组来实现,还是需要编写自己的权限系统(或者是否有第三方Django应用程序来实现)

如果编写自己的权限和组系统更好,请遵循任何设计建议


谢谢

您可以在管理员页面中设置权限,如foo.can_write或在自己的视图中设置权限,如

myuser.user_permissions.add(permission, permission, ...)
在视图中,可以设置某些操作所需的权限。从文件中:

from django.contrib.auth.decorators import permission_required
@permission_required('polls.can_vote')
def my_view(request):

has_权限装饰器可用于视图,这需要管理很多内容——用户、组和权限。我使用django guardian进行基于角色的访问控制。它可能适合你的需要。