阅读背景:

Restframework之CreateApiview源码流程

来源:互联网 

1.接口代码调用流程

  #1.入口,子类继承CreateAPIView
  class IssueIdea(CreateAPIView):                   
      pass  

  #2.调用 CreateAPIView.post
     class CreateAPIView(mixins.CreateModelMixin,GenericAPIView):
           def post(self, request, *args, **kwargs):
               return self.create(request, *args, **kwargs)

  #3.post调用create方法,根据继承顺序执行CreateModelMixin.create
               def perform_create(self, serializer):
                      #校验成功后保存
                      serializer.save()

               def get_success_headers(self, data):

               def create(self, request, *args, **kwargs):
                      ...

  #4.CreateModelMixin.create

         #4.1 将前端数据传入序列化器进行校验
              #GenericAPIView,返回序列化器类名
              def get_serializer(self, *args, **kwargs):
                        ....
                    return self.serializer_class #子类需要定义序列化器
              #校验
              serializer = self.get_serializer(data=request.data)
         #4.2 验证成功保存数据
          
              #传入序列化器进行保存
              self.perform_create(serializer)

              #调用CreateModelMixin.perform_create保存
               def perform_create(self, serializer): #!子类可重写此方法自定义保存
                   serializer.save()
                   #4.2.1 序列化器 save方法
                          save():
                                self.create(validated_data) #create子类需要自定义,否则抛出异常(在此方法中自定义保存)
  #5.serializer.create
              #调用自定义的序列化器create方法进行保存
  #1.入口,子类继承CreateAPIView
  class I



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: