django-bulk-hooks 0.1.272__tar.gz → 0.1.274__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.272 → django_bulk_hooks-0.1.274}/PKG-INFO +1 -1
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/queryset.py +28 -3
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/pyproject.toml +1 -1
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/LICENSE +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/README.md +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/__init__.py +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/conditions.py +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/constants.py +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/context.py +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/decorators.py +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/engine.py +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/enums.py +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/handler.py +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/manager.py +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/models.py +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/priority.py +0 -0
- {django_bulk_hooks-0.1.272 → django_bulk_hooks-0.1.274}/django_bulk_hooks/registry.py +0 -0
|
@@ -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
|
-
|
|
571
|
-
|
|
572
|
-
|
|
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
|
[tool.poetry]
|
|
2
2
|
name = "django-bulk-hooks"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.274"
|
|
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
|