在Django REST框架中,默认权限类如何与每个视图(集)组合?

时间:2018-01-29 22:28:50

标签: python django django-rest-framework oauth2-toolkit

我正在阅读http://www.django-rest-framework.org/api-guide/permissions/并尝试将其与OAuth2工具包文档http://django-oauth-toolkit.readthedocs.io/en/latest/rest-framework/getting_started.html相关联。后者有一个例子,其中settings.py一个指定

REST_FRAMEWORK = {
    # ...

    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    )
}

此外,IsAuthenticated也被指定添加到permission_classes的{​​{1}}列表中:

ModelViewSet

我是否从此示例中正确推断class UserViewSet(viewsets.ModelViewSet): permission_classes = [permissions.IsAuthenticated, TokenHasReadWriteScope] queryset = User.objects.all() serializer_class = UserSerializer 未预先/后添加到DEFAULT_PERMISSION_CLASSES的权限类,而是由其替换?

2 个答案:

答案 0 :(得分:1)

  

在Django REST框架中,默认权限类如何与每个视图(集)结合?

他们没有合并。

  

... DEFAULT_PERMISSION_CLASSES没有预先/后缀到ModelViewSet的权限类,而是替换为它?

正确。

答案 1 :(得分:1)

  

我是否从这个例子中正确地推断出了   DEFAULT_PERMISSION_CLASSES不会被添加到/后添加到   ModelViewSet的权限类,但由它替换?

DEFAULT_PERMISSION_CLASSES用于未定义permission_classes的视图/视图集。在定义它们的情况下,使用它们而不是默认值。