Пример функции Django bulk_create
Я пытаюсь понять bulk_create в Django
Это был мой первоначальный запрос, который я пытаюсь преобразовать:
for e in q:
msg = Message.objects.create(
recipient_number=e.mobile,
content=batch.content,
sender=e.contact_owner,
billee=batch.user,
sender_name=batch.sender_name
)
Означает ли это, что выполнение следующего (ниже) цикла будет выполняться и создавать все записи сначала, а затем попадать в базу данных? Правильно ли это?
msg = Message.objects.bulk_create({
Message (
recipient_number=e.mobile,
content=batch.content,
sender=e.contact_owner,
billee=batch.user,
sender_name=batch.sender_name
),
})
Ответы
Ответ 1
Второй код в вопросе создает один объект, потому что он передает набор с объектом Message.
Чтобы создать несколько объектов, передайте несколько объектов Message в файл bulk_create. Например:
objs = [
Message(
recipient_number=e.mobile,
content=batch.content,
sender=e.contact_owner,
billee=batch.user,
sender_name=batch.sender_name
)
for e in q
]
msg = Message.objects.bulk_create(objs)