9-2 动态设置serializer和permission获取用户信息

 

 

-----------------------------------

from rest_framework import permissions

 

看源码:

 

 

重载:

    def get_permissions(self):
        if self.action == "retrieve":
            return [permissions.IsAuthenticated()]
        elif self.action == "create":
            return []
        return []

 

 

 

进来了

 

 

action = 'retrieve'

--------------------------------------

from rest_framework import authentication

 

    authentication_classes = (authentication.SessionAuthentication, )

 

-------------------------------

from rest_framework_jwt.authentication import JSONWebTokenAuthentication

 

    authentication_classes = (JSONWebTokenAuthentication, authentication.SessionAuthentication)

 

效果:

 

现在设置:

REST_FRAMEWORK = {
 'DEFAULT_AUTHENTICATION_CLASSES': (
    'rest_framework.authentication.BasicAuthentication',
    'rest_framework.authentication.SessionAuthentication',
 )
}
# REST_FRAMEWORK = {
#     'DEFAULT_AUTHENTICATION_CLASSES': []
# }

 

说:users下面多了个read 之前是没有的。

 

read一下

 

还提示:

{

    "detail": "身份认证信息未提供。"

}

 

下面添加 token

 

 

再次获取 read

 

 

-----------------------------------------

    def get_serializer_class(self):
        if self.action == "retrieve":
            return UserDetailSerializer
        elif self.action == "create":
            return UserRegSerializer
        return UserDetailSerializer

 

效果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值