django-bulk-hooks 0.2.34__py3-none-any.whl → 0.2.36__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.
- django_bulk_hooks/operations/bulk_executor.py +21 -9
- {django_bulk_hooks-0.2.34.dist-info → django_bulk_hooks-0.2.36.dist-info}/METADATA +1 -1
- {django_bulk_hooks-0.2.34.dist-info → django_bulk_hooks-0.2.36.dist-info}/RECORD +5 -5
- {django_bulk_hooks-0.2.34.dist-info → django_bulk_hooks-0.2.36.dist-info}/LICENSE +0 -0
- {django_bulk_hooks-0.2.34.dist-info → django_bulk_hooks-0.2.36.dist-info}/WHEEL +0 -0
|
@@ -448,7 +448,7 @@ class BulkExecutor:
|
|
|
448
448
|
# For ForeignKey fields, use the target field to ensure correct SQL types
|
|
449
449
|
is_fk = isinstance(field, ForeignKey)
|
|
450
450
|
case_output_field = field.target_field if is_fk else field
|
|
451
|
-
|
|
451
|
+
|
|
452
452
|
# DEBUG: Log field information
|
|
453
453
|
logger.info(
|
|
454
454
|
f"DEBUG MTI Update - Field: {field_name}, "
|
|
@@ -458,7 +458,7 @@ class BulkExecutor:
|
|
|
458
458
|
f"OutputFieldType: {type(case_output_field).__name__}, "
|
|
459
459
|
f"FieldClass: {field.__class__.__module__}.{field.__class__.__name__}"
|
|
460
460
|
)
|
|
461
|
-
|
|
461
|
+
|
|
462
462
|
if is_fk:
|
|
463
463
|
logger.info(
|
|
464
464
|
f"DEBUG FK Details - Field: {field_name}, "
|
|
@@ -474,7 +474,7 @@ class BulkExecutor:
|
|
|
474
474
|
|
|
475
475
|
# Get the field value - handle ForeignKey fields specially
|
|
476
476
|
value = getattr(obj, field.attname, None) if is_fk else getattr(obj, field_name)
|
|
477
|
-
|
|
477
|
+
|
|
478
478
|
# DEBUG: Log value information for first object
|
|
479
479
|
if pk == root_pks[0]:
|
|
480
480
|
logger.info(
|
|
@@ -485,12 +485,24 @@ class BulkExecutor:
|
|
|
485
485
|
f"ValueRepr: {repr(value)}"
|
|
486
486
|
)
|
|
487
487
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
488
|
+
# Handle NULL values specially for ForeignKey fields
|
|
489
|
+
if is_fk and value is None:
|
|
490
|
+
# For ForeignKey fields with None values, use None directly
|
|
491
|
+
# Django handles this as proper NULL with correct type
|
|
492
|
+
when_statements.append(
|
|
493
|
+
When(
|
|
494
|
+
**{field_group.filter_field: pk},
|
|
495
|
+
then=None,
|
|
496
|
+
),
|
|
497
|
+
)
|
|
498
|
+
else:
|
|
499
|
+
# For non-None values or non-FK fields, use Value with output_field
|
|
500
|
+
when_statements.append(
|
|
501
|
+
When(
|
|
502
|
+
**{field_group.filter_field: pk},
|
|
503
|
+
then=Value(value, output_field=case_output_field),
|
|
504
|
+
),
|
|
505
|
+
)
|
|
494
506
|
|
|
495
507
|
if when_statements:
|
|
496
508
|
case_statements[field_name] = Case(*when_statements, output_field=case_output_field)
|
|
@@ -13,14 +13,14 @@ django_bulk_hooks/manager.py,sha256=3mFzB0ZzHHeXWdKGObZD_H0NlskHJc8uYBF69KKdAXU,
|
|
|
13
13
|
django_bulk_hooks/models.py,sha256=4Vvi2LiGP0g4j08a5liqBROfsO8Wd_ermBoyjKwfrPU,2512
|
|
14
14
|
django_bulk_hooks/operations/__init__.py,sha256=BtJYjmRhe_sScivLsniDaZmBkm0ZLvcmzXFKL7QY2Xg,550
|
|
15
15
|
django_bulk_hooks/operations/analyzer.py,sha256=8xNdsoeOCHsIIP7ztIuFHDewBR2dDSS6auOrSU8zmqE,9007
|
|
16
|
-
django_bulk_hooks/operations/bulk_executor.py,sha256=
|
|
16
|
+
django_bulk_hooks/operations/bulk_executor.py,sha256=KsNHVkMjFEFdyLwht0wLLay8WfuHZbwHLwUeZeNm6cQ,23703
|
|
17
17
|
django_bulk_hooks/operations/coordinator.py,sha256=iSi-x3fq6_3UygWGeQY8Fq_gZWIqq_8N7WddPhVeygk,23526
|
|
18
18
|
django_bulk_hooks/operations/mti_handler.py,sha256=G-pxkzIqHqXGshRGksqmsN1J3rlzePUZrSv4wm7D3cQ,19162
|
|
19
19
|
django_bulk_hooks/operations/mti_plans.py,sha256=YP7LcV9Z8UqNS_x74OswF9_5swqruRTdAu6z-J_R6C0,3377
|
|
20
20
|
django_bulk_hooks/operations/record_classifier.py,sha256=KzUoAhfoqzFVrOabNZAby9Akb54h-fAQZmb8O-fIx_0,6221
|
|
21
21
|
django_bulk_hooks/queryset.py,sha256=rvJgQLwtSJztwc68nkJ6xwCsnbXQvkvS6_dbGGj8TFo,5886
|
|
22
22
|
django_bulk_hooks/registry.py,sha256=QyeA2OqNdMAMaLjFU9UF0YGhKiPKbZkmFQpLgof7uNs,9038
|
|
23
|
-
django_bulk_hooks-0.2.
|
|
24
|
-
django_bulk_hooks-0.2.
|
|
25
|
-
django_bulk_hooks-0.2.
|
|
26
|
-
django_bulk_hooks-0.2.
|
|
23
|
+
django_bulk_hooks-0.2.36.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
|
|
24
|
+
django_bulk_hooks-0.2.36.dist-info/METADATA,sha256=aMOShV8jbI7Fk-ZlBpDlme21jKHRmJWO9X5rnCrMX4Y,9265
|
|
25
|
+
django_bulk_hooks-0.2.36.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
26
|
+
django_bulk_hooks-0.2.36.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|