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

@@ -567,9 +567,30 @@ class HookQuerySetMixin:
567
567
  existing_query = model_cls.objects.filter(existing_filters)
568
568
  logger.debug(f"DEBUG: Existence check SQL: {existing_query.query}")
569
569
 
570
- for existing_record in existing_query.values_list(*unique_fields):
571
- # Convert tuple to a hashable key for lookup
572
- existing_records_lookup.add(existing_record)
570
+ # Also get the raw database values for debugging
571
+ raw_existing = list(existing_query.values_list(*unique_fields))
572
+ logger.debug(f"DEBUG: Raw existing records from DB: {raw_existing}")
573
+
574
+ # Convert database values to match object types for comparison
575
+ # This handles cases where object values are strings but DB values are integers
576
+ existing_records_lookup = set()
577
+ for existing_record in raw_existing:
578
+ # Convert each value in the tuple to match the type from object extraction
579
+ converted_record = []
580
+ for i, field_name in enumerate(unique_fields):
581
+ db_value = existing_record[i]
582
+ # Check if this field uses _id suffix in the query
583
+ query_field_name = query_fields[field_name]
584
+ if query_field_name.endswith('_id'):
585
+ # Convert to string to match how we extract from objects
586
+ converted_record.append(str(db_value))
587
+ else:
588
+ converted_record.append(db_value)
589
+ converted_tuple = tuple(converted_record)
590
+ existing_records_lookup.add(converted_tuple)
591
+
592
+ logger.debug(f"DEBUG: Found {len(raw_existing)} existing records from DB")
593
+ logger.debug(f"DEBUG: Existing records lookup set: {existing_records_lookup}")
573
594
 
574
595
  # Separate records based on whether they already exist
575
596
  for obj in objs:
@@ -589,10 +610,14 @@ class HookQuerySetMixin:
589
610
  obj_unique_value[field_name]
590
611
  for field_name in unique_fields
591
612
  )
613
+ logger.debug(f"DEBUG: Object unique tuple: {obj_unique_tuple}")
614
+ logger.debug(f"DEBUG: Object unique value: {obj_unique_value}")
592
615
  if obj_unique_tuple in existing_records_lookup:
593
616
  existing_records.append(obj)
617
+ logger.debug(f"DEBUG: Found existing record for tuple: {obj_unique_tuple}")
594
618
  else:
595
619
  new_records.append(obj)
620
+ logger.debug(f"DEBUG: No existing record found for tuple: {obj_unique_tuple}")
596
621
  else:
597
622
  # If we can't determine uniqueness, treat as new
598
623
  new_records.append(obj)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-bulk-hooks
3
- Version: 0.1.272
3
+ Version: 0.1.274
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=Bx-W6yyiciKMyy-BRxUt3CmRPCrX9_LhQgU-5LaJTjg,
9
9
  django_bulk_hooks/manager.py,sha256=3jNWL-EkvGScsliNc7mW-ozQCG6HyaEevI1u1BFS4AA,3836
10
10
  django_bulk_hooks/models.py,sha256=WtSfc4GBOG_oOt8n37cVvid0MtFIGze9JYKSixil2y0,4370
11
11
  django_bulk_hooks/priority.py,sha256=HG_2D35nga68lBCZmSXTcplXrjFoRgZFRDOy4ROKonY,376
12
- django_bulk_hooks/queryset.py,sha256=7J1kU8trTSXKatdu2cE7sN39KTL5179YYPjjjzbBOe4,90788
12
+ django_bulk_hooks/queryset.py,sha256=N5Xff3rxGKLvVzQO6NXypSDaAFFVZhRjTcdGSCeSy3c,92606
13
13
  django_bulk_hooks/registry.py,sha256=GRUTGVQEO2sdkC9OaZ9Q3U7mM-3Ix83uTyvrlTtpatw,1317
14
- django_bulk_hooks-0.1.272.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
15
- django_bulk_hooks-0.1.272.dist-info/METADATA,sha256=rVznllpFeHYu1UyNYJPYM90biupnGzzpX2eQCEvJ5XM,9115
16
- django_bulk_hooks-0.1.272.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
17
- django_bulk_hooks-0.1.272.dist-info/RECORD,,
14
+ django_bulk_hooks-0.1.274.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
15
+ django_bulk_hooks-0.1.274.dist-info/METADATA,sha256=WOMGNPawACo8Tsnwffd0NVzsdjWRpbsa5LEMt_7DqE8,9115
16
+ django_bulk_hooks-0.1.274.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
17
+ django_bulk_hooks-0.1.274.dist-info/RECORD,,