加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 21:37:52 所属栏目:Python 来源:网络整理
导读:我正在为文档应用程序创建基于类的API,但我想在APIView中为帖子和补丁定义添加特定权限.例如, class DocumentList(APIView): def get(self,request,format=None): ... blah def post(self,format=None): only allow administrators to create new documents
我正在为文档应用程序创建基于类的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地图改变>删除要删除的地图

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读