request() получил неожиданный аргумент ключевого слова 'customer'

Реализовал бритву, получил вышеуказанную ошибку. Мне нужно создать нового клиента в API razorpay. Невозможно получить клиента, как говорится, ошибка не может получить клиента.

from django.db import models
from customers.models import Customer
from django.db.models.signals import post_save,pre_save
import razorpay

client = razorpay.Client(auth=("", ""))

class BillingProfile(models.Model):
customer      = models.OneToOneField(Customer,null=True,blank=True)
inserted      = models.DateTimeField(auto_now_add=True)
updated       = models.DateTimeField(auto_now=True)
b_customer_id = models.CharField(max_length=120,null=True,blank=True)

def __str__(self):
    return self.customer.name

def billing_profile_recieved(sender,instance,*args,**kwargs):
if not instance.b_customer_id and instance.customer:
    print(instance.id,"OOOOOOOOOOOOOOOOOOOoo")
    print(client,"------------------------------")
    customer = client.customer.create(customer=instance.id)  //_______ ERROR
    print(customer)
pre_save.connect(billing_profile_recieved,sender=BillingProfile)


def user_created_reciever(sender,instance,created,*args,**kwargs):
if created:
    BillingProfile.objects.get_or_create(customer=instance)
print(instance.user_customer,client)

post_save.connect(user_created_reciever, sender=Customer)

2 ответа

name = instance.customer.name
email = instance.customer.user_customer.email
contact = instance.customer.phone_no

if not instance.b_customer_id and instance.customer:
    try:
        customer = client.customer.create(     {
                                            "name" : name,
                                            "email" : email,
                                            "contact" : contact,
                                            "notes": {}
                                            }
                                    )
        instance.b_customer_id = customer["id"]
    except Exception as e:
        print(e)

pre_save.connect(billing_profile_recieved,sender=BillingProfile)

Это способ, которым я должен был передать данные. Этот формат был интегрирован в их API.

Может быть потому, что пользователь с электронной почтой уже существует. Вы можете передать дополнительный параметр с именем "fail_existing": "0". Тогда customer_id будет возвращен. Если существующего клиента нет, он создаст нового клиента и вернет customer_id.

тело должно быть примерно таким:

{
  "name" : "Cornelius123",
  "email" : "cornelius19901@gmail.com",
  "contact" : "+919000000000",
  "fail_existing":"0",
  "notes": {}
}

[![enter image description here][1]][1]
Другие вопросы по тегам