赞
踩
- REST_FRAMEWORK = {
- 'DEFAULT_PERMISSION_CLASSES': (
- 'rest_framework.permissions.IsAuthenticated',
- )
- }
权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。
如果不指定就用默认的配置:
- 'DEFAULT_PERMISSION_CLASSES': (
- 'rest_framework.permissions.AllowAny',
- )
自定义权限:
- from rest_framework.permissions import BasePermission
- class MyPermission(BasePermission):
- def has_object_permission(self, request, view, obj):
- """
- 控制对obj对象的访问权限,吃案例决绝对所有用户的访问
- 不能访问单一结果,但是可以访问列表结果
- has_object_permission是否可以访问数据对象, view表示当前视图, obj为数据对象
- .has_permission(self, request, view)是否可以访问视图, view表示当前视图对象
- """
- return False
我们使用之前写的视图类进行验证:
- from rest_framework.permissions import IsAuthenticated
- class BookInfoViewSet(mixins.ListModelMixin,mixins.RetrieveModelMixin,GenericViewSet):
- """使用GenericViewSet实现返回列表和单一值"""
-
- # 指定序列化器
- serializer_class = BookInfoSerializer
- # 制定查询集
- queryset = BookInfo.objects.all()
- # authentication_classes = [SessionAuthentication]
- # 登陆者的权限.是Admin还是普通用户 是admin可以访问还是普通用户可以访问
- permission_classes = [IsAuthenticated,MyPermission]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。