Как сохранить json-данные в базе данных Django с помощью queryset

У меня есть эти данные в формате json

{
    'items_data': [
        {'item': 'Datalogger', 'hsn': '123', 'unit_name': 'BAG', 'unit_price': '100', 'quantity': '4',
         'tax_code': 'GST 18', 'base_discount': '4', 'discount_value': 16, 'amount': 384, 'state': 'Maharashtra',
         'invoice_number': 'TES-0822-97', 'tax_no': '18', 'tax_name': 'GST', 'base_Amount': 400, 'CGST': 36, 'SGST': 36}, 

        {'item': 'Datalogger', 'hsn': '123', 'unit_name': 'BAG', 'unit_price': '100', 'quantity': '4', 
         'tax_code': 'GST 28', 'base_discount': '4', 'discount_value': 16, 'amount': 384, 'state': 'Maharashtra',
         'invoice_number': 'TES-0822-97', 'tax_no': '28', 'tax_name': 'GST', 'base_Amount': 400, 'CGST': 56, 'SGST': 56}],

 'invoice_num': 'TES-0822-97',

 'gst_data': [
    {'tax_no': '18', 'totalGST': 72, 'total_base_amount': 400, 'cgst': 36, 'sgst': 36},
    {'tax_no': '28', 'totalGST': 112, 'total_base_amount': 400, 'cgst': 56, 'sgst': 56}
  ]
}

Теперь я хочу получить данные элементов и сохранить их в базе данных с помощью набора запросов. как я могу сохранить это с помощью объектов набора запросов?

Я делаю этот код

def get_invoice_items(request):

json_body = json.loads(request.body)
print(json_body)
for data in json_body["items_data"]:
    print(data)
    items=Items_Details.objects.bulk_create(data)
    print(items)

return JsonResponse({"message" : "Request Handled.."})

но получаем ошибку

bulk_create требует список объектов в качестве первого аргумента. Попробуйте следующее

    items = []
    for data in json_body["items_data"]:
        # create item objects through django rest framework deserialization.
        # or 
        items.append(Item_Details(**data))
    Item_Details.objects.bulk_create(items)

PS: Это будет работать только в том случае, если все поля в data dict являются полями в модели. Можно ли передавать словарь в модели django при создании?

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