Django webhook receiver

Я создал веб-приемник, который принимает JSON и создает объект модели. Он прекрасно работает с JSON. Но тот, от кого я получаю данные, использует другой тип строковых данных. В настоящее время я просто распечатываю их в консоли. Как мне преобразовать это в объект модели?

Данные, которые они отправляют, выглядят следующим образом:

Phone1=4441114444&FirstName=Chris&LastName=Farley&DOB=1982-11-21&Email=test@test.com

class Client(models.Model):
   first_name = models.CharField(blank =True, max_length=100)
   last_name = models.CharField(blank=True, max_length=100)
   phone = models.CharField(max_length=100, null=True, default="", blank=True)
   email = models.EmailField(max_length=100,default="", blank=True)


@csrf_exempt
def webhook(request):
  if request.method == 'POST':
    print(json.loads(request.body)) 
    Client.objects.create(
       first_name=json.loads(request.body)['FirstName'], 
       last_name=json.loads(request.body)['LastName'],
       phone=json.loads(request.body)['Phone1'],
       email=json.loads(request.body)['Email']
       
       )


    return HttpResponse(request.body, status=200)

Вы получаете доступ к этому с помощью request.POST, поэтому:

def webhook(request):
  if request.method == 'POST':
    Client.objects.create(
       first_name=request.POST['FirstName'], 
       last_name=request.POST['LastName'],
       phone=request.POST['Phone1'],
       email=request.POST['Email']
   )
    return HttpResponse(request.body, status=200)

Но обычно лучше обрабатывать данные с помощью форм [Django-doc]: они могут выполнять валидацию, очистку, а ModelForm могут сохранить это в объекте модели в базе данных.

Вернуться на верх