def create(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) print(request.data) serializer.is_valid(raise_exception=True) self.perform_create(serializer) accountSerializer=AccountSerializer() if (accountSerializer.validate_mobile(serializer.data['mobile'])): data = { 'apikey': settings.YUNPIAN_API_KEY, 'mobile': serializer.data['mobile'], 'text': settings.MOBILE_VERIFICATION_MESSAGE_TEMPLATE % ( serializer.data['code'], settings.VERIFICATION_CODE_EXPIRATION_IN_MINUTES, ), } try: r = requests.post(settings.YUNPIAN_SMS_API, data=data) if r.status_code == 200: return Response(status=status.HTTP_201_CREATED) response = { 'detail': six.text_type(_('YUNPIAN service request failed.')), 'reason': six.text_type(_('Response code is not 200.')), 'code': r.status_code, } return Response(response, status=status.HTTP_503_SERVICE_UNAVAILABLE) except: response = { 'detail': six.text_type(_('YUNPIAN service request failed.')), 'reason': six.text_type(_('Exception catched when made request to YUNPIAN SMS API.')), } return Response(response, status=status.HTTP_503_SERVICE_UNAVAILABLE) response = { 'detail': six.text_type(_('The number has been registered.')), 'reason': six.text_type(_('The number has been registered.')), 'code': r.status_code, } return Response(response, status=status.HTTP_503_SERVICE_UNAVAILABLE)