Объект 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

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