def post(self, request, format=None): access_key_check(request) country_code = request.data['country_code'] number = request.data['number'] first_name = request.data['first_name'] last_name = request.data['last_name'] email = request.data['email'] if 'photo' in request.FILES: photo = request.data['photo'] else: photo = '' udid = request.data['udid'] phone = Phone.objects.get( Q(country_code=country_code) & Q(number=number)) sms_code_udid = SmsCode.objects.get(phone=phone).udid if udid == '': raise AccessDenied("Нет udid") if udid != sms_code_udid: raise AccessDenied("udids не совпадают") if Profile.objects.filter(phone=phone).count() > 0: raise ProfileEngaged( "Аккаунт с указанным номером телефона уже существует") profile = Profile() profile.phone = phone profile.first_name = first_name profile.last_name = last_name profile.email = email if photo: profile.photo = upload_photo(photo, phone) else: profile.photo = '' host = request.META['HTTP_HOST'] if host.startswith('www.'): host = host[4:] profile.payment_url = host + "/" + str(profile.external_id) try: qr = requests.get('https://api.scanova.io/v2/qrcode/url' + '?url=' + profile.payment_url + '&apikey=' + settings.SCANOVA_API_KEY) profile.qr = upload_qr(qr.content, phone) except: profile.qr = '' profile.save() token = Token.objects.create(profile=profile) result = {'token': token.token} return Response(result, status=status.HTTP_201_CREATED)