权限源码



if not permission.has_permission(request, self) 这里的self并不是指对象,指的是视图类的对象(view),视图类中的has_permission中有三个参数(self,request,view)

配置在视图类上一个个权限类的对象列表 [权限对象1,权限对象2]

认证源码

所以要从根上找

从request中找,去Request类中找user---》方法包装成了数据属性


因为认证类抛异常继承的是APIException,所以将只要符合APIException全部捕获。

self就是request对象,后续 request.user就是认证类返回的第一个参数


认证类可以配置多个,但是如果有一个返回了,后续的就不走了
self.authenticators 是request对象的属性,是在Request实例化的时候传入的,它什么时候实例化的,包装新的Reqeust时传入的---》APIView的dispatch--》