django-bulk-hooks 0.2.28__tar.gz → 0.2.30__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.

Files changed (26) hide show
  1. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/PKG-INFO +1 -1
  2. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/operations/bulk_executor.py +11 -3
  3. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/pyproject.toml +1 -1
  4. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/LICENSE +0 -0
  5. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/README.md +0 -0
  6. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/__init__.py +0 -0
  7. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/changeset.py +0 -0
  8. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/conditions.py +0 -0
  9. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/constants.py +0 -0
  10. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/context.py +0 -0
  11. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/decorators.py +0 -0
  12. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/dispatcher.py +0 -0
  13. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/enums.py +0 -0
  14. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/factory.py +0 -0
  15. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/handler.py +0 -0
  16. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/helpers.py +0 -0
  17. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/manager.py +0 -0
  18. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/models.py +0 -0
  19. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/operations/__init__.py +0 -0
  20. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/operations/analyzer.py +0 -0
  21. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/operations/coordinator.py +0 -0
  22. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/operations/mti_handler.py +0 -0
  23. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/operations/mti_plans.py +0 -0
  24. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/operations/record_classifier.py +0 -0
  25. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/queryset.py +0 -0
  26. {django_bulk_hooks-0.2.28 → django_bulk_hooks-0.2.30}/django_bulk_hooks/registry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-bulk-hooks
3
- Version: 0.2.28
3
+ Version: 0.2.30
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
@@ -7,7 +7,7 @@ This service coordinates bulk database operations with validation and MTI handli
7
7
  import logging
8
8
 
9
9
  from django.db import transaction
10
- from django.db.models import AutoField
10
+ from django.db.models import AutoField, ForeignKey
11
11
 
12
12
  logger = logging.getLogger(__name__)
13
13
 
@@ -462,11 +462,19 @@ class BulkExecutor:
462
462
  if obj_pk is None:
463
463
  continue
464
464
 
465
- value = getattr(obj, field_name)
465
+ # Get the field value - handle ForeignKey fields specially
466
+ if isinstance(field, ForeignKey):
467
+ value = getattr(obj, field.attname, None)
468
+ # For ForeignKey fields, use the target field for proper type casting
469
+ output_field = field.target_field
470
+ else:
471
+ value = getattr(obj, field_name)
472
+ output_field = field
473
+
466
474
  when_statements.append(
467
475
  When(
468
476
  **{field_group.filter_field: pk},
469
- then=Value(value, output_field=field),
477
+ then=Value(value, output_field=output_field),
470
478
  ),
471
479
  )
472
480
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-bulk-hooks"
3
- version = "0.2.28"
3
+ version = "0.2.30"
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"