rest-framework权限中has_permission和

2020-06-29  本文已影响0人  上帝大人

先看视图对queryset的处理

在GenericAPIView中,有以下方法get_queryset,filter_queryset, get_object, 其中:
get_queryset就是获取当前的查询集,
filter_queryset根据filter_backends进行过滤,
get_object是根据参数获取过滤集的单个对象:调用的是get_object_or_404方法, 不需要提供查询集,因为他使用的是过滤集,本质是QuerySet对象的get()方法

在ListModelMixin中,也就是查询多个的时候,要获取查询集,使用的是filter_queryset,返回

在RetrieveModelMixin中,查询单个对象,使用的是get_object方法,返回


区别

has_permission在请求进来的时候就开始了属于DRF的三大认证,返回True就能访问,False就禁止访问
has_object_permissions是对某个对象的访问权限,默认是True


可以根据request对象和obj对象判断:该对象是否可以返回给该request请求,返回True或者False。
上一篇 下一篇

猜你喜欢

热点阅读