django-bulk-hooks 0.1.180__py3-none-any.whl → 0.1.182__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.

@@ -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
  Metadata-Version: 2.3
2
2
  Name: django-bulk-hooks
3
- Version: 0.1.180
3
+ Version: 0.1.182
4
4
  Summary: Hook-style hooks for Django bulk operations like bulk_create and bulk_update.
5
5
  License: MIT
6
6
  Keywords: django,bulk,hooks
@@ -9,9 +9,9 @@ django_bulk_hooks/handler.py,sha256=xZt8iNdYF-ACz-MnKMY0co6scWINU5V5wC1lyDn844k,
9
9
  django_bulk_hooks/manager.py,sha256=KLEjpQRt4WlzgBAf_X3XOAPUQM8Jmc1fIt8yr62FPQc,3044
10
10
  django_bulk_hooks/models.py,sha256=7fnx5xd4HWXfLVlFhhiRzR92JRWFEuxgk6aSWLEsyJg,3996
11
11
  django_bulk_hooks/priority.py,sha256=HG_2D35nga68lBCZmSXTcplXrjFoRgZFRDOy4ROKonY,376
12
- django_bulk_hooks/queryset.py,sha256=ezIjOPUJ-1Oya_jwnJlPBg0kNkefbdyKmHBPFXYLBkY,24467
12
+ django_bulk_hooks/queryset.py,sha256=mWrbt6I0N8--IZ01eXyWsfFuVj62bbvtr06frM9PCes,24844
13
13
  django_bulk_hooks/registry.py,sha256=-mQBizJ06nz_tajZBinViKx_uP2Tbc1tIpTEMv7lwKA,705
14
- django_bulk_hooks-0.1.180.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
15
- django_bulk_hooks-0.1.180.dist-info/METADATA,sha256=4zH19E4nseZM2tF5kdJoTpvcJOdEtPJ42PGjZXPY0Eg,6951
16
- django_bulk_hooks-0.1.180.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
17
- django_bulk_hooks-0.1.180.dist-info/RECORD,,
14
+ django_bulk_hooks-0.1.182.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
15
+ django_bulk_hooks-0.1.182.dist-info/METADATA,sha256=sBgWwmOAkiN9zxOCkaf0C-0v2MVMsbPum20NPQhAArI,6951
16
+ django_bulk_hooks-0.1.182.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
17
+ django_bulk_hooks-0.1.182.dist-info/RECORD,,