Как сохранить 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 при создании?