django-bulk-hooks 0.1.275__tar.gz → 0.1.277__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 (17) hide show
  1. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/PKG-INFO +1 -1
  2. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/queryset.py +13 -8
  3. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/pyproject.toml +1 -1
  4. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/LICENSE +0 -0
  5. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/README.md +0 -0
  6. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/__init__.py +0 -0
  7. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/conditions.py +0 -0
  8. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/constants.py +0 -0
  9. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/context.py +0 -0
  10. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/decorators.py +0 -0
  11. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/engine.py +0 -0
  12. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/enums.py +0 -0
  13. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/handler.py +0 -0
  14. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/manager.py +0 -0
  15. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/models.py +0 -0
  16. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/priority.py +0 -0
  17. {django_bulk_hooks-0.1.275 → django_bulk_hooks-0.1.277}/django_bulk_hooks/registry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-bulk-hooks
3
- Version: 0.1.275
3
+ Version: 0.1.277
4
4
  Summary: Hook-style hooks for Django bulk operations like bulk_create and bulk_update.
5
5
  Home-page: https://github.com/AugendLimited/django-bulk-hooks
6
6
  License: MIT
@@ -586,13 +586,9 @@ class HookQuerySetMixin:
586
586
  converted_record = []
587
587
  for i, field_name in enumerate(unique_fields):
588
588
  db_value = existing_record[i]
589
- # Check if this field uses _id suffix in the query
590
- query_field_name = query_fields[field_name]
591
- if query_field_name.endswith("_id"):
592
- # Convert to string to match how we extract from objects
593
- converted_record.append(str(db_value))
594
- else:
595
- converted_record.append(db_value)
589
+ # Convert all values to strings for consistent comparison
590
+ # This ensures all database values are strings like object values
591
+ converted_record.append(str(db_value))
596
592
  converted_tuple = tuple(converted_record)
597
593
  existing_records_lookup.add(converted_tuple)
598
594
 
@@ -629,7 +625,9 @@ class HookQuerySetMixin:
629
625
  # Convert to string to match how we convert DB values
630
626
  obj_unique_tuple.append(str(value))
631
627
  else:
632
- obj_unique_tuple.append(value)
628
+ # For non-_id fields, also convert to string for consistency
629
+ # This ensures all values are strings like in the database lookup
630
+ obj_unique_tuple.append(str(value))
633
631
  obj_unique_tuple = tuple(obj_unique_tuple)
634
632
 
635
633
  logger.debug(
@@ -700,9 +698,16 @@ class HookQuerySetMixin:
700
698
  if key in existing_db_map:
701
699
  db_record = existing_db_map[key]
702
700
  # Copy all fields from the database record to ensure completeness
701
+ # but exclude auto_now_add fields which should never be updated
703
702
  populated_fields = []
704
703
  for field in model_cls._meta.local_fields:
705
704
  if field.name != "id": # Don't overwrite the ID
705
+ # Skip auto_now_add fields for existing records
706
+ if (
707
+ hasattr(field, "auto_now_add")
708
+ and field.auto_now_add
709
+ ):
710
+ continue
706
711
  db_value = getattr(db_record, field.name)
707
712
  if (
708
713
  db_value is not None
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-bulk-hooks"
3
- version = "0.1.275"
3
+ version = "0.1.277"
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"