<强>权限全局配置:强>
REST_FRAMEWORK={ “DEFAULT_PERMISSION_CLASSES”:( “rest_framework.permissions.IsAuthenticated”, ) }
权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。
在执行视图的调度()方法前,会先进行视图访问权限的判断
在通过get_object()获取具体对象时,会进行对象访问权限的判断
<>强如果不指定就用默认的配置:强>
“DEFAULT_PERMISSION_CLASSES”:( “rest_framework.permissions.AllowAny”, )
<>强自定义权限:强>
从rest_framework。权限导入BasePermission 类MyPermission (BasePermission): def has_object_permission(自我、请求、视图obj): ”“” 控制对obj对象的访问权限,吃案例决绝对所有用户的访问 不能访问单一结果,但是可以访问列表结果 has_object_permission是否可以访问数据对象,查看表示当前视图,obj为数据对象 .has_permission(自我,请求,视图)是否可以访问视图,查看表示当前视图对象 ”“” 返回False
<强>我们使用之前写的视图类进行验证:强>
从rest_framework。权限导入IsAuthenticated 类BookInfoViewSet (mixins.ListModelMixin, mixins.RetrieveModelMixin GenericViewSet): ”“”使用GenericViewSet实现返回列表和单一值“”“ #指定序列化器 serializer_class=BookInfoSerializer #制定查询集 queryset=BookInfo.objects.all () # authentication_classes=[SessionAuthentication] #登陆者的权限。是管理员还是普通用户是管理员可以访问还是普通用户可以访问 permission_classes=[IsAuthenticated MyPermission]
<>强提供的权限强>
AllowAny允许所有用户 IsAuthenticated仅通过认证的用户 IsAdminUser仅管理员用户 IsAuthenticatedOrReadOnly认证的用户可以完全操作,否则只能得到读取
以上这篇Django -权限权限的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。