Объект dict не имеет атрибута
В frontend я использую vue js, используя axios я отправил данные в backend. Но после нажатия кнопки submit я получил эту ошибку: dict object has no attribute 'invoice_products'.
Из фронтенда с использованием axios:
this.$http.post('http://127.0.0.1:8000/api/createTest', {
invoice_products: this.invoice_products
})
Это мои входные данные в формате json
{"invoice_products":[{"name":"fgf","price":"56"}]}
views.py:
@api_view(['POST'])
def createTest(request):
serializer = TestSerializer(data=request.data.invoice_products)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
Ошибка: dict object не имеет атрибута 'invoice_products'
request.data является диктой. Поэтому вы получаете доступ к его информации с помощью request.data[yourkey], а не request.data.yourkey
@api_view(['POST'])
def createTest(request):
serializer = TestSerializer(data=request.data['invoice_products'])
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
В зависимости от того, как выглядит ваш сериализатор, вам может понадобиться добавить опцию many=true к TestSerializer