Ожидаемая строка или байтоподобный объект при отправке Post-запроса к представлению
У меня есть представление, где я делаю post request из моего фронтенда, я отправляю список объектов в качестве тела в эту конечную точку. Я получил список в переменной files. Теперь я пытаюсь создать объект с данными, которые я получаю из моего списка files, но я получаю эту ошибку
@api_view(("POST",))
@renderer_classes((TemplateHTMLRenderer, JSONRenderer))
def get_import(request):
files = json.loads(request.body)
print(files) # im able to see the list in the console.
user = UserAccount.objects.filter(email=request.user).first()
for i in range(len(files)):
trans, created = Transaction.objects.update_or_create(
chp_reference=files[i]["transaction_chp_reference"],
defaults={
"user": user,
"income_period": files[i]["transaction_income_period"],
"property_market_rent": files[i]["transaction_property_market_rent"],
},
)
trans.save()
return Response(status=status.HTTP_201_CREATED)
Я попытался удалить все миграции и db, и создать заново. но все та же проблема.
Я полагаю, что json.loads() создаст словарь, поэтому для итерации сделайте следующее:
@api_view(("POST",))
@renderer_classes((TemplateHTMLRenderer, JSONRenderer))
def get_import(request):
files = json.loads(request.body)
print(files) # im able to see the list in the console.
user = UserAccount.objects.filter(email=request.user).first()
for key, value in files:
trans, created = Transaction.objects.update_or_create(
chp_reference=value["transaction_chp_reference"],
defaults={
"user": user,
"income_period": value["transaction_income_period"],
"property_market_rent": value["transaction_property_market_rent"],
},
)
trans.save()
return Response(status=status.HTTP_201_CREATED)