request()获得了意外的关键字参数'customer'

时间:2018-08-03 12:16:15

标签: django python-3.x django-rest-framework razorpay

实施razorpay时遇到了以上错误。 我需要在razorpay api中创建一个新客户。 无法获得客户,因为它说错误无法获得客户。

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 个答案:

答案 0 :(得分:0)

let now = Date()
let calendar = Calendar.current
let weekEndInterval = calendar.dateIntervalOfWeekend(containing: now) ?? calendar.nextWeekend(startingAfter: now)!
let startDate = weekEndInterval.start
let endDate = startDate.addingTimeInterval(weekEndInterval.duration-1)
print(startDate, calendar.startOfDay(for: endDate))

这是我应该传递数据的方式。 这种格式已集成到他们的api中。

答案 1 :(得分:0)

可能是因为已有使用电子邮件的用户。您可以传递一个名为“ 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]