def create(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) # print(serializer) # print(SmsCodeViewSet.serializer_class) # 校验序列化器的 validate_mobile 方法 serializer.is_valid(raise_exception=True) # 取出 mobile mobile = serializer.data['mobile'] code = self.random_code() yp = YunPian() # sms_status {'code': 0, 'msg': '发送成功', 'count': 1, 'fee': 0.05, 'unit': 'RMB', 'mobile': '17635700440', 'sid': 26748214808} sms_status = yp.send_msg('17635700440', code) print(sms_status) if sms_status['code'] == 0: VerifyCode(mobile=mobile, code=code).save() return Response({ 'mobile': mobile, 'msg': sms_status['msg'], }, status=status.HTTP_201_CREATED) else: return Response({ 'mobile': mobile, 'msg': sms_status['msg'], }, status=status.HTTP_400_BAD_REQUEST)
def create(self, request, *args, **kwargs): # 重写 create, 因为要加发送验证码功能 serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) # 判断是否合法 mobile = serializer.validated_data['mobile'] code = self.get_random_code() yunpian = YunPian(YUNPIAN_KEY) result = yunpian.send_msg(mobile, code) if result['code'] == 0: # 只有发送成功再创建对象 ver_code = VerifyCode() ver_code.code = code ver_code.mobile = mobile ver_code.save() return Response(data={'mobile': mobile, 'msg': result['msg']}, status=status.HTTP_201_CREATED) else: return Response(data={'mobile': mobile, 'msg': result['msg']}, status=status.HTTP_400_BAD_REQUEST)
def create(self, request, *args, **kwargs): #得到序列化器 serializer = self.get_serializer(data=request.data) #校验序列化器的字段 serializer.is_valid(raise_exception=True) mobile = serializer.data['mobile'] code = self.generating() yun_pian = YunPian('4f70824dde066067241393c80c291ea6') sms_status = yun_pian.send_msg(mobile,code) sms_status = json.loads(sms_status,) if sms_status['code'] == 0: verify_code = VerifyCode(code=code,mobile=mobile) verify_code.save() # 暂时注释掉 # self.perform_create(serializer) # headers = self.get_success_headers(serializer.data) # print(headers) return Response({"mobile":mobile,"msg":sms_status["msg"]}, status=status.HTTP_201_CREATED) else: return Response({"mobile":mobile,"msg":sms_status["msg"]}, status=status.HTTP_400_BAD_REQUEST)