django-bulk-hooks 0.2.38__tar.gz → 0.2.39__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.38 → django_bulk_hooks-0.2.39}/PKG-INFO +1 -1
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/bulk_executor.py +18 -4
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/pyproject.toml +1 -1
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/LICENSE +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/README.md +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/__init__.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/changeset.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/conditions.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/constants.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/context.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/decorators.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/dispatcher.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/enums.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/factory.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/handler.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/helpers.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/manager.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/models.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/__init__.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/analyzer.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/coordinator.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/mti_handler.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/mti_plans.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/record_classifier.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/queryset.py +0 -0
- {django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/registry.py +0 -0
{django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/bulk_executor.py
RENAMED
|
@@ -487,16 +487,16 @@ class BulkExecutor:
|
|
|
487
487
|
|
|
488
488
|
# Handle NULL values specially for ForeignKey fields
|
|
489
489
|
if is_fk and value is None:
|
|
490
|
-
# For ForeignKey fields with None values, use None
|
|
491
|
-
#
|
|
490
|
+
# For ForeignKey fields with None values, use Value(None) with proper output_field
|
|
491
|
+
# This ensures the SQL generates proper NULL with correct type casting
|
|
492
492
|
logger.info(
|
|
493
493
|
f"DEBUG NULL FIX APPLIED - Field: {field_name}, "
|
|
494
|
-
f"PK: {pk}, Using None
|
|
494
|
+
f"PK: {pk}, Using Value(None) with output_field: {type(case_output_field).__name__}"
|
|
495
495
|
)
|
|
496
496
|
when_statements.append(
|
|
497
497
|
When(
|
|
498
498
|
**{field_group.filter_field: pk},
|
|
499
|
-
then=None,
|
|
499
|
+
then=Value(None, output_field=case_output_field),
|
|
500
500
|
),
|
|
501
501
|
)
|
|
502
502
|
else:
|
|
@@ -528,6 +528,20 @@ class BulkExecutor:
|
|
|
528
528
|
f"WhenThen: {when_stmt.result}, "
|
|
529
529
|
f"WhenThenType: {type(when_stmt.result).__name__}"
|
|
530
530
|
)
|
|
531
|
+
|
|
532
|
+
# DEBUG: Check if the When result has output_field
|
|
533
|
+
if hasattr(when_stmt.result, 'output_field'):
|
|
534
|
+
logger.info(
|
|
535
|
+
f"DEBUG When Result OutputField - Field: {field_name}, "
|
|
536
|
+
f"WhenIndex: {i}, "
|
|
537
|
+
f"ResultOutputField: {type(when_stmt.result.output_field).__name__}"
|
|
538
|
+
)
|
|
539
|
+
else:
|
|
540
|
+
logger.info(
|
|
541
|
+
f"DEBUG When Result No OutputField - Field: {field_name}, "
|
|
542
|
+
f"WhenIndex: {i}, "
|
|
543
|
+
f"ResultType: {type(when_stmt.result).__name__}"
|
|
544
|
+
)
|
|
531
545
|
|
|
532
546
|
# Execute bulk update
|
|
533
547
|
if case_statements:
|
|
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.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/__init__.py
RENAMED
|
File without changes
|
{django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/analyzer.py
RENAMED
|
File without changes
|
{django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/coordinator.py
RENAMED
|
File without changes
|
{django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/mti_handler.py
RENAMED
|
File without changes
|
{django_bulk_hooks-0.2.38 → django_bulk_hooks-0.2.39}/django_bulk_hooks/operations/mti_plans.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|