django-bulk-hooks 0.1.135__py3-none-any.whl → 0.1.137__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of django-bulk-hooks might be problematic. Click here for more details.
- django_bulk_hooks/queryset.py +12 -7
- {django_bulk_hooks-0.1.135.dist-info → django_bulk_hooks-0.1.137.dist-info}/METADATA +1 -1
- {django_bulk_hooks-0.1.135.dist-info → django_bulk_hooks-0.1.137.dist-info}/RECORD +5 -5
- {django_bulk_hooks-0.1.135.dist-info → django_bulk_hooks-0.1.137.dist-info}/LICENSE +0 -0
- {django_bulk_hooks-0.1.135.dist-info → django_bulk_hooks-0.1.137.dist-info}/WHEEL +0 -0
django_bulk_hooks/queryset.py
CHANGED
|
@@ -381,17 +381,21 @@ class HookQuerySet(models.QuerySet):
|
|
|
381
381
|
# Use Django's exact approach: call _prepare_for_bulk_create then partition
|
|
382
382
|
base_qs._prepare_for_bulk_create(all_child_objects)
|
|
383
383
|
|
|
384
|
-
#
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
384
|
+
# Implement our own partition since itertools.partition might not be available
|
|
385
|
+
objs_without_pk, objs_with_pk = [], []
|
|
386
|
+
for obj in all_child_objects:
|
|
387
|
+
if obj._is_pk_set():
|
|
388
|
+
objs_with_pk.append(obj)
|
|
389
|
+
else:
|
|
390
|
+
objs_without_pk.append(obj)
|
|
389
391
|
|
|
390
392
|
print(f"DEBUG: Prepared {len(objs_with_pk)} objects with PK, {len(objs_without_pk)} objects without PK")
|
|
391
393
|
|
|
392
394
|
# Use Django's internal _batched_insert method
|
|
393
395
|
opts = child_model._meta
|
|
394
|
-
|
|
396
|
+
# For child models in MTI, we need to exclude the parent's primary key
|
|
397
|
+
# since it's inherited and not stored in the child table
|
|
398
|
+
fields = [f for f in opts.concrete_fields if not f.generated and not f.primary_key]
|
|
395
399
|
|
|
396
400
|
with transaction.atomic(using=self.db, savepoint=False):
|
|
397
401
|
if objs_with_pk:
|
|
@@ -411,7 +415,8 @@ class HookQuerySet(models.QuerySet):
|
|
|
411
415
|
|
|
412
416
|
if objs_without_pk:
|
|
413
417
|
print(f"DEBUG: Inserting {len(objs_without_pk)} objects without PK")
|
|
414
|
-
|
|
418
|
+
# For objects without PK, we still need to exclude primary key fields
|
|
419
|
+
fields = [f for f in fields if not isinstance(f, AutoField) and not f.primary_key]
|
|
415
420
|
returned_columns = base_qs._batched_insert(
|
|
416
421
|
objs_without_pk,
|
|
417
422
|
fields,
|
|
@@ -9,9 +9,9 @@ django_bulk_hooks/handler.py,sha256=xZt8iNdYF-ACz-MnKMY0co6scWINU5V5wC1lyDn844k,
|
|
|
9
9
|
django_bulk_hooks/manager.py,sha256=r54ct3S6AcqME2OsX-jPF944CEKcoSIW3qiAx_NwUaw,2801
|
|
10
10
|
django_bulk_hooks/models.py,sha256=7RG7GrOdHXFjGVPV4FPRZVNMIHHW-hMCi6hn9LH_hVI,3331
|
|
11
11
|
django_bulk_hooks/priority.py,sha256=HG_2D35nga68lBCZmSXTcplXrjFoRgZFRDOy4ROKonY,376
|
|
12
|
-
django_bulk_hooks/queryset.py,sha256=
|
|
12
|
+
django_bulk_hooks/queryset.py,sha256=4kl067PMW8JypLs8BHfN9a6v0TS1kzRmUueU5mDolpI,22627
|
|
13
13
|
django_bulk_hooks/registry.py,sha256=-mQBizJ06nz_tajZBinViKx_uP2Tbc1tIpTEMv7lwKA,705
|
|
14
|
-
django_bulk_hooks-0.1.
|
|
15
|
-
django_bulk_hooks-0.1.
|
|
16
|
-
django_bulk_hooks-0.1.
|
|
17
|
-
django_bulk_hooks-0.1.
|
|
14
|
+
django_bulk_hooks-0.1.137.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
|
|
15
|
+
django_bulk_hooks-0.1.137.dist-info/METADATA,sha256=_hIvD1jMj7Bn2AKvmlL68YUjTOEb2V5SfrPhEyWncV8,6951
|
|
16
|
+
django_bulk_hooks-0.1.137.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
17
|
+
django_bulk_hooks-0.1.137.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|