如何在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地图改变>删除要删除的地图 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |