rest_framework 权限

在对权限添加验证中有两种方法

          局部验证(加在当前视图里面)
  • #局部验证
    1. 直接在view里面的permission_classes[]进行添加
    permission_classes = [
          MyPermission
    ]
    
  • #自定义验证
    1. 创建一个perission的py文件
    2. 创建一个类继承BasePermission
from rest_framework.permissions import BasePermission, SAFE_METHODS


class MyPermission(BasePermission):
    def has_permission(self, request, view):
        # 用户对这个视图有没有 GET POST PUT PATCH DELETE 权限的分别判断
        if not request.user:
            return False

        return True

    def has_object_permission(self, request, view, obj):
        """
        是用户过了has_permission 判断有权限以后,
        再判断这个用户有没有对一个具体的对象有没有操作权限。
        SAFE_METHODS : ('GET', 'HEAD', 'OPTIONS')
        """
        if not request.method in SAFE_METHODS:
            return request.user == obj.user
        return True
发布了32 篇原创文章 · 获赞 2 · 访问量 240

猜你喜欢

转载自blog.csdn.net/qq_33759361/article/details/104811754