美文网首页django-rest-framework
django-restful:动态设置serializer和 p

django-restful:动态设置serializer和 p

作者: 你常不走的路 | 来源:发表于2018-01-07 14:06 被阅读37次

    标题的问题 碰到的情况 主要就是 遇到 多个 serializer 如何 分配
    和 不同情况 使用不同的perimission

    假如 我们 在一个 viewset 中 即有 注册 功能 和 查看 用户个人信息 两个 接口 同样查看个人信息 肯定需要登录验证,而 注册 不需要 所以 不能直接设置 peimission_class 来配置

    #我们需要继承 get_permissions方法  他是  在 APIView 这个类里面 可以自己去 查
        def get_permissions(self):
            if self.action == 'retrieve':    #这里的 action 只有使用了 viewset才有
                return [IsAuthenticated()]
            elif self.action == 'create':
                return []
    
            return []
    

    同理 我们 注册 和 查看个人信息 使用的 serializer 也是不同的 我们 同样不能使用 serializer_class

    #他在 viewset  generics 中
        def get_serializer_class(self):
            if self.action == 'retrieve':
                return UserDetailSerializer
            elif self.action == 'create':
                return UserRegSerializer
    
            return UserRegSerializer
    

    相关文章

      网友评论

        本文标题:django-restful:动态设置serializer和 p

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