django-bulk-hooks 0.1.180__tar.gz → 0.1.182__tar.gz
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-0.1.180 → django_bulk_hooks-0.1.182}/PKG-INFO +1 -1
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/queryset.py +18 -9
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/pyproject.toml +1 -1
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/LICENSE +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/README.md +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/__init__.py +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/conditions.py +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/constants.py +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/context.py +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/decorators.py +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/engine.py +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/enums.py +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/handler.py +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/manager.py +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/models.py +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/priority.py +0 -0
- {django_bulk_hooks-0.1.180 → django_bulk_hooks-0.1.182}/django_bulk_hooks/registry.py +0 -0
|
@@ -17,8 +17,6 @@ from django_bulk_hooks.context import HookContext
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class HookQuerySet(models.QuerySet):
|
|
20
|
-
CHUNK_SIZE = 200
|
|
21
|
-
|
|
22
20
|
@transaction.atomic
|
|
23
21
|
def delete(self):
|
|
24
22
|
objs = list(self)
|
|
@@ -537,7 +535,7 @@ class HookQuerySet(models.QuerySet):
|
|
|
537
535
|
"""
|
|
538
536
|
model_cls = self.model
|
|
539
537
|
inheritance_chain = self._get_inheritance_chain()
|
|
540
|
-
|
|
538
|
+
|
|
541
539
|
# Group fields by model in the inheritance chain
|
|
542
540
|
field_groups = {}
|
|
543
541
|
for field_name in fields:
|
|
@@ -549,31 +547,42 @@ class HookQuerySet(models.QuerySet):
|
|
|
549
547
|
field_groups[model] = []
|
|
550
548
|
field_groups[model].append(field_name)
|
|
551
549
|
break
|
|
552
|
-
|
|
550
|
+
|
|
553
551
|
# Update each table in the inheritance chain
|
|
554
552
|
total_updated = 0
|
|
555
553
|
for model, model_fields in field_groups.items():
|
|
556
554
|
if not model_fields:
|
|
557
555
|
continue
|
|
558
|
-
|
|
556
|
+
|
|
559
557
|
# Get objects that have this model's fields
|
|
560
558
|
model_objs = []
|
|
561
559
|
for obj in objs:
|
|
562
560
|
# Create a temporary object with just this model's fields
|
|
563
561
|
temp_obj = model()
|
|
564
|
-
temp_obj.pk = obj.pk # Set the primary key
|
|
565
562
|
|
|
563
|
+
# Set the primary key properly using the model's pk field
|
|
564
|
+
pk_field = model._meta.pk
|
|
565
|
+
pk_value = obj.pk
|
|
566
|
+
setattr(temp_obj, pk_field.attname, pk_value)
|
|
567
|
+
|
|
568
|
+
# Also set the pk property for compatibility
|
|
569
|
+
temp_obj.pk = pk_value
|
|
570
|
+
|
|
571
|
+
# Mark the object as not being added (it's an existing object)
|
|
572
|
+
temp_obj._state.adding = False
|
|
573
|
+
temp_obj._state.db = self.db
|
|
574
|
+
|
|
566
575
|
# Copy only the fields for this model
|
|
567
576
|
for field_name in model_fields:
|
|
568
577
|
if hasattr(obj, field_name):
|
|
569
578
|
setattr(temp_obj, field_name, getattr(obj, field_name))
|
|
570
|
-
|
|
579
|
+
|
|
571
580
|
model_objs.append(temp_obj)
|
|
572
|
-
|
|
581
|
+
|
|
573
582
|
# Use Django's bulk_update for this model's table
|
|
574
583
|
# This will automatically use batch_size from kwargs
|
|
575
584
|
base_qs = model._base_manager.using(self.db)
|
|
576
585
|
updated_count = base_qs.bulk_update(model_objs, model_fields, **kwargs)
|
|
577
586
|
total_updated += updated_count
|
|
578
|
-
|
|
587
|
+
|
|
579
588
|
return total_updated
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "django-bulk-hooks"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.182"
|
|
4
4
|
description = "Hook-style hooks for Django bulk operations like bulk_create and bulk_update."
|
|
5
5
|
authors = ["Konrad Beck <konrad.beck@merchantcapital.co.za>"]
|
|
6
6
|
readme = "README.md"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|