django-bulk-hooks 0.2.19__tar.gz → 0.2.22__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.2.19 → django_bulk_hooks-0.2.22}/PKG-INFO +1 -1
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/bulk_executor.py +27 -7
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/pyproject.toml +1 -1
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/LICENSE +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/README.md +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/__init__.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/changeset.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/conditions.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/constants.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/context.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/decorators.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/dispatcher.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/enums.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/factory.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/handler.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/helpers.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/manager.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/models.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/__init__.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/analyzer.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/coordinator.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/mti_handler.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/mti_plans.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/record_classifier.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/queryset.py +0 -0
- {django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/registry.py +0 -0
{django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/bulk_executor.py
RENAMED
|
@@ -474,20 +474,40 @@ class BulkExecutor:
|
|
|
474
474
|
|
|
475
475
|
# For FK fields, ensure we get the actual ID value, not the related object
|
|
476
476
|
if getattr(field, "is_relation", False) and hasattr(field, "attname"):
|
|
477
|
+
# ADD DEBUG LOGGING
|
|
478
|
+
logger.error(f"DEBUG FK CONVERSION: field={field_name}, db_field={db_field_name}")
|
|
479
|
+
logger.error(f"DEBUG FK VALUE BEFORE: value={value!r}, type={type(value)}")
|
|
480
|
+
logger.error(f"DEBUG FK field.attname={field.attname}, field.target_field={getattr(field, 'target_field', 'N/A')}")
|
|
481
|
+
|
|
477
482
|
# If value is a model instance, get its pk
|
|
478
483
|
if value is not None and hasattr(value, "pk"):
|
|
479
484
|
value = value.pk
|
|
485
|
+
logger.error(f"DEBUG FK: Extracted pk from model instance: {value!r}")
|
|
480
486
|
# If value is a string representation of an ID, convert to int
|
|
481
|
-
elif value is not None and isinstance(value, str)
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
+
elif value is not None and isinstance(value, str):
|
|
488
|
+
logger.error(f"DEBUG FK: Value is string, isdigit()={value.isdigit()}")
|
|
489
|
+
if value.isdigit():
|
|
490
|
+
value = int(value)
|
|
491
|
+
logger.error(f"DEBUG FK: Converted string to int: {value!r}")
|
|
492
|
+
elif value == "":
|
|
493
|
+
value = None
|
|
494
|
+
logger.error(f"DEBUG FK: Converted empty string to None")
|
|
495
|
+
else:
|
|
496
|
+
logger.error(f"DEBUG FK: String value doesn't pass isdigit() check! ASCII codes: {[ord(c) for c in value]}")
|
|
497
|
+
|
|
498
|
+
logger.error(f"DEBUG FK VALUE AFTER: value={value!r}, type={type(value)}")
|
|
499
|
+
|
|
500
|
+
# Create the Value expression - don't use output_field for None values
|
|
501
|
+
# This prevents PostgreSQL type mismatch errors with NULL values
|
|
502
|
+
if value is not None:
|
|
503
|
+
value_expr = Value(value, output_field=target_field)
|
|
504
|
+
else:
|
|
505
|
+
value_expr = Value(None) # No output_field for None
|
|
506
|
+
|
|
487
507
|
when_statements.append(
|
|
488
508
|
When(
|
|
489
509
|
**{field_group.filter_field: pk},
|
|
490
|
-
then=
|
|
510
|
+
then=value_expr,
|
|
491
511
|
),
|
|
492
512
|
)
|
|
493
513
|
|
|
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
|
|
File without changes
|
{django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/__init__.py
RENAMED
|
File without changes
|
{django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/analyzer.py
RENAMED
|
File without changes
|
{django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/coordinator.py
RENAMED
|
File without changes
|
{django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/mti_handler.py
RENAMED
|
File without changes
|
{django_bulk_hooks-0.2.19 → django_bulk_hooks-0.2.22}/django_bulk_hooks/operations/mti_plans.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|