Právě procházím stejným cvičením. Přístup, který jsem zvolil, je vytvořit seznam nových objektů z DataFrame a poté je hromadně vytvořit:
bulk_create(objs, batch_size=None)
Tato metoda vloží poskytnutý seznam objektů do databáze efektivním způsobem (obecně pouze 1 dotaz , bez ohledu na to, kolik objektů je)
Příklad může vypadat takto:
# Not able to iterate directly over the DataFrame
df_records = df.to_dict('records')
model_instances = [MyModel(
field_1=record['field_1'],
field_2=record['field_2'],
) for record in df_records]
MyModel.objects.bulk_create(model_instances)