【问题标题】:How set permission for specific app in Django Rest Framework如何在 Django Rest Framework 中为特定应用设置权限
【发布时间】:2018-03-01 22:09:15
【问题描述】:

我的 Django 项目中有两个 REST 应用程序:

  1. api - 应该是 AllowAnyReadOnly
  2. apicrm - 应该是 rest_framework.permissions.IsAuthenticated

如何在 Django Rest Framework 中为整个应用设置此权限?

【问题讨论】:

    标签: django django-rest-framework django-settings django-permissions


    【解决方案1】:

    使本地配置如下:

    API

    class apiView(viewsets.ModelViewSet) .... {
      permission_classes = ()
      authentication_classes = ()
    }
    

    apicrm

    class apiView(viewsets.ModelViewSet) .... {
      permission_classes = (IsAuthenticated)
      authentication_classes = (JSONWebTokenAuthentication,)
    }
    

    【讨论】:

    • 你的意思是为应用程序中的每个 ViewSet 制作它吗?
    【解决方案2】:

    我认为没有任何全局设置来定义应用程序的权限。 我在这里能想到的是用适当的权限类制作一个基础视图类。

    示例

    api应用

    class BaseApiViewSet(viewsets.ModelViewSet):
        permission_classes = (AllowAny, )
    
    # inherit BaseApiViewSet in all other viewsets
    class ViewSet1(BaseApiViewSet):
        # code as it is
    

    apicrm应用

    class BaseApiCrmViewSet(viewsets.ModelViewSet):
        permission_classes = (IsAuthenticated, )
    
    # similary, inherit from BaseApiCrmViewSet in all other viewsets
    

    【讨论】:

      猜你喜欢
      • 2013-06-16
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 2015-05-18
      • 2017-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多