美文网首页
rest-framework权限中has_permission和

rest-framework权限中has_permission和

作者: 上帝大人 | 来源:发表于2020-06-29 10:44 被阅读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。
    • 调用的时机:在get_object方法中调用


    相关文章

      网友评论

          本文标题:rest-framework权限中has_permission和

          本文链接:https://www.haomeiwen.com/subject/yitofktx.html