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
могут сохранить это в объекте модели в базе данных.