Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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
Django REST框架中不同API方法的基于角色的访问控制_Django_Python 3.x_Django Rest Framework - Fatal编程技术网

Django REST框架中不同API方法的基于角色的访问控制

Django REST框架中不同API方法的基于角色的访问控制,django,python-3.x,django-rest-framework,Django,Python 3.x,Django Rest Framework,我正在为产品创建RESTAPI,该产品具有以下权限:(创建产品、查看产品、编辑产品)。在我的项目中,我有不同角色的不同用户(例如:生产者、零售商、消费者等等)。我正在为各个角色分配权限。我正在使用Django组权限 示例:“生产者”角色具有“创建产品”和“查看产品”权限。“零售商”角色具有“编辑产品”权限。“使用者”角色没有权限 我想根据权限代码限制访问权限。我需要一个通用的方法来解决这个问题。我希望对具有不同权限代码的不同视图使用相同的方法 在我看来.py class Product(view

我正在为产品创建RESTAPI,该产品具有以下权限:(创建产品、查看产品、编辑产品)。在我的项目中,我有不同角色的不同用户(例如:生产者、零售商、消费者等等)。我正在为各个角色分配权限。我正在使用Django组权限

示例:“生产者”角色具有“创建产品”和“查看产品”权限。“零售商”角色具有“编辑产品”权限。“使用者”角色没有权限

我想根据权限代码限制访问权限。我需要一个通用的方法来解决这个问题。我希望对具有不同权限代码的不同视图使用相同的方法

在我看来.py

class Product(viewsets.ModelViewSet):

     serializer_class = ProductSerializer
     queryset = Product.objects.all()
在settings.py中,我添加了以下代码

 REST_FRAMEWORK = {
     'DEFAULT_PERMISSION_CLASSES': (
           'rest_framework.permissions.IsAuthenticated',
     ),
     'DEFAULT_AUTHENTICATION_CLASSES': (
           'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
           'rest_framework.authentication.BasicAuthentication',
           'rest_framework.authentication.SessionAuthentication',
     ),
 }

提前感谢。

您可以使用django组权限我只使用django组权限,然后您可以在模型类metasee中使用权限=(“读取产品”,“可以读取产品”),)我也做了同样的事情,但我不知道如何使用django REST框架