zoukankan      html  css  js  c++  java
  • 【Python web 开发】django rest framwork动态设置权限premission

    首先我们来看下我们写的用户usersViewSet

    新建用户,获取用户信息详情,修改用户详情,是共用同一个viewset,但是新建用户是不需要 用户token的,获取详情和修还用户信息是需要用户的token的

    但是又是共用同一个配置,那怎么办呢? 于是就引进了 动态化配置premisetion

    mixins.RetrieveModelMixin 是获取用户详情的 view

    获取用户信息 前端是要在请求的url里面带一个user_id 过来的,这个有两种方式
    1、用户登录成功在 返回一个
    user_id给前端,前端再请求用户信息的时候带着这个id 过来
    2、不用前端传递id ,后台重写get_object 方法获取当前请求的user
    如何来动态配置premisstion?
    我们来看源码
    viewsets.GenericViewSet---generics.GenericAPIView---views.APIView  进来 testvirLibsite-packages
    est_frameworkviews.py

    看源码:get_premisstion()方法 主要是 遍历我们配置的premisstion class ,返回的premisstion class 的一个实例也是对象,可能会有多个,所以返回的是一个数组

    那我们就来重写 get_premisstion()方法

    action 是与函数名保持一致的,放在self 中,只有viewset 是这样,如果使用api view 就不会这样了

    动态配置premisstion 就解决了。

     
     



  • 相关阅读:
    大数据之路_1
    Echart图表设置项
    AsyncSocket
    book_.Net与设计模式
    book_精通正则表达式
    操作系统基本功能
    操作系统基础
    网络系统结构与设计的基本原则
    3.1EDA和数据描述: 探索性数据分析
    宽带城域网
  • 原文地址:https://www.cnblogs.com/yuanyuan2017/p/10161844.html
Copyright © 2011-2022 走看看