如何在Django Rest Framework中为特定请求添加权限
发布时间:2020-05-23 19:58:27 所属栏目:Python 来源:互联网
导读:我正在为文档应用程序创建基于类的API,但我想在APIView中为帖子和补丁定义添加特定权限.例如, class DocumentList(APIView): def get(self,request,format=None): ... blah def post(self,request,format=None): only allow ad
|
我正在为文档应用程序创建基于类的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地图改变>删除要删除的地图 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
