Как размещать элементы строк в REST API Django

Данные GET-ответа

[
    {
        "id": "055444eb-5c4d-445b-99cc-a01be17deeb7",
        "transaction_line_items": [
            {
                "id": "5b0ea944-a032-4b8e-a29a-3f52e0863040",
                "title": "Sambar Powder",
                "description": "Sambar Powder 100g",
                "price": "10",
                "quantity": 1,
                "created_at": "2022-08-17T14:01:39.387406Z",
                "updated_at": "2022-08-17T14:01:39.387406Z"
            },
            {
                "id": "ace1546b-12e4-4a6d-991e-b867cf64515a",
                "title": "Tomato",
                "description": "Tomato 10kg",
                "price": "20",
                "quantity": 10,
                "created_at": "2022-08-17T14:01:05.194278Z",
                "updated_at": "2022-08-17T14:01:05.194278Z"
            }
        ],
        "transaction_no": "6aa623a3",
        "cgst_per": 8,
        "igst_per": 8,
        "sgst_per": 0,
        "created_at": "2022-08-17T14:01:58.694463Z",
        "updated_at": "2022-08-17T14:01:58.694463Z",
        "account": "0b68e37e-ba15-4427-8a45-d48b152a42d5",
        "main_biiling_account": "edc9d792-ffdb-4122-8589-d499f05e4f7b"
    }
]

Данные POST-запроса

{
    "transaction_line_items":[
        {
            "title":"Tomato",
            "description":"2 kg Tomato",
            "price":"10",
            "quantity":2
        },
        {
            "title":"Fish",
            "description":"2 kg Fish",
            "price":"500",
            "quantity":2
        }
    ],
    "cgst_per":"8",
    "igst_per":"8",
    "sgst_per":"0",
    "account":"edc9d792-ffdb-4122-8589-d499f05e4f7b",
    "main_biiling_account":"edc9d792-ffdb-4122-8589-d499f05e4f7b"
}

Данные POST-ответа

{
    "id": "dc2ed349-2e3b-42a3-9ce8-1ecd6f11a225",
    "transaction_line_items": [],
    "transaction_no": "6aa623a3",
    "cgst_per": 8,
    "igst_per": 8,
    "sgst_per": 0,
    "created_at": "2022-08-17T14:08:02.995195Z",
    "updated_at": "2022-08-17T14:08:02.995195Z",
    "account": "edc9d792-ffdb-4122-8589-d499f05e4f7b",
    "main_biiling_account": "edc9d792-ffdb-4122-8589-d499f05e4f7b"
}

View Code

@api_view(['GET','POST'])
@permission_classes([IsAuthenticated])
def apiTransactions(request,account_id):
    if request.method == 'GET':
        transactions = Transaction.objects.filter(account=account_id,account__user=request.user)
        serializer = TransactionSerializer(transactions, many=True)
        return Response(serializer.data)
    elif request.method == 'POST':
        data = request.data 
        if (data["account"]==account_id):
            serializer = TransactionSerializer(data=data)
            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data, status=status.HTTP_200_OK)
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        return Response({'meassage': 'Account ID not match'}, status=status.HTTP_400_BAD_REQUEST)
    

Выше я привел коды и данные JSON. Почему мои элементы строк не сохраняются? Когда я ввожу данные с помощью страницы администратора, они работают правильно. Когда я использую API, данные не сохраняются. Как я могу написать код для решения этих проблем, я новичок в Django. Пожалуйста, помогите решить эту проблему.

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