Я использую bulk_create, создаю несколько записей из ajax json POST.
. В документах указывается следующее:
Если Вы хотите вставлять объекты в пакетах без одновременной оценки всего генератора, вы можете использовать эту технику, если у объектов нет установленных первичных ключей вручную
Это дает следующий пример:
from itertools import islice
batch_size = 100
objs = (Entry(headline='Test %s' % i) for i in range(1000))
while True:
batch = list(islice(objs, batch_size))
if not batch:
break
Entry.objects.bulk_create(batch, batch_size)
Однако, когда я запускаю этот точный код, я получаю уникальную ошибку ограничения первичного ключа:
django.db.utils.IntegrityError: duplicate key value violates unique constraint 'entry_pkey'
Это происходит потому, что код бесконечно циклично перебирает один и тот же набор объектов (while True
) и не перемещает начальные и конечные значения islice по списку. Документы не так? Я неверно истолковал код / это может быть что-то еще, что я здесь упускаю?
Я использую PostgreSQL.