如何在Django Rest Framework中为特定请求添加权限

前端之家收集整理的这篇文章主要介绍了如何在Django Rest Framework中为特定请求添加权限前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为文档应用程序创建基于类的API,但我想在APIView中为帖子和补丁定义添加特定权限.例如,
class DocumentList(APIView):

    def get(self,request,format=None):
         ... blah

    def post(self,format=None):
        only allow administrators to create new documents 
        ... blah

解决方法

By default permissions are unrestricted.在您的settings.py中,您可以指定一组不同的默认值,以便用户必须进行身份验证并拥有正确的Django模型权限.您需要在视图类上指定一个模型属性才能使DjangoModelPermissions生效.
# settings.py
REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated','rest_framework.permissions.DjangoModelPermissions'
    )
}

# views.py
class DocumentList(APIView):
    model = Document
    ...

DjangoModelPermissions权限映射can be found in the source.

> GET,OPTIONS和HEAD不需要许可,但由于我们指定了IsAuthenticated,我们仍然要求> POST地图添加> PUT和PATCH地图改变>删除删除的地图

猜你在找的Python相关文章