django-bulk-hooks 0.1.261__tar.gz → 0.1.262__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.261 → django_bulk_hooks-0.1.262}/PKG-INFO +1 -1
  2. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/queryset.py +5 -4
  3. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/pyproject.toml +1 -1
  4. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/LICENSE +0 -0
  5. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/README.md +0 -0
  6. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/__init__.py +0 -0
  7. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/conditions.py +0 -0
  8. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/constants.py +0 -0
  9. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/context.py +0 -0
  10. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/decorators.py +0 -0
  11. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/engine.py +0 -0
  12. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/enums.py +0 -0
  13. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/handler.py +0 -0
  14. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/manager.py +0 -0
  15. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/models.py +0 -0
  16. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/django_bulk_hooks/priority.py +0 -0
  17. {django_bulk_hooks-0.1.261 → django_bulk_hooks-0.1.262}/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.1.261
3
+ Version: 0.1.262
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
@@ -889,6 +889,7 @@ class HookQuerySetMixin:
889
889
  # Handle auto_now fields like Django's update_or_create does
890
890
  fields_set = set(fields)
891
891
  pk_fields = model_cls._meta.pk_fields
892
+ pk_field_names = [f.name for f in pk_fields]
892
893
  auto_now_fields = []
893
894
  custom_update_fields = [] # Fields that need pre_save() called on update
894
895
  logger.debug(f"Checking for auto_now and custom update fields in {model_cls.__name__}")
@@ -898,7 +899,7 @@ class HookQuerySetMixin:
898
899
  if hasattr(field, "auto_now") and field.auto_now:
899
900
  logger.debug(f"Found auto_now field: {field.name}")
900
901
  print(f"DEBUG: Found auto_now field: {field.name}")
901
- if field.name not in fields_set and field.name not in pk_fields:
902
+ if field.name not in fields_set and field.name not in pk_field_names:
902
903
  fields_set.add(field.name)
903
904
  if field.name != field.attname:
904
905
  fields_set.add(field.attname)
@@ -913,7 +914,7 @@ class HookQuerySetMixin:
913
914
  # Check for custom fields that might need pre_save() on update (like CurrentUserField)
914
915
  elif hasattr(field, 'pre_save'):
915
916
  # Only call pre_save on fields that aren't already being updated
916
- if field.name not in fields_set and field.name not in pk_fields:
917
+ if field.name not in fields_set and field.name not in pk_field_names:
917
918
  custom_update_fields.append(field)
918
919
  logger.debug(f"Found custom field with pre_save: {field.name}")
919
920
  print(f"DEBUG: Found custom field with pre_save: {field.name}")
@@ -945,8 +946,8 @@ class HookQuerySetMixin:
945
946
  # Only update the field if pre_save returned a new value
946
947
  if new_value is not None:
947
948
  setattr(obj, field.name, new_value)
948
- # Add this field to the update fields if it's not already there
949
- if field.name not in fields_set:
949
+ # Add this field to the update fields if it's not already there and not a primary key
950
+ if field.name not in fields_set and field.name not in pk_field_names:
950
951
  fields_set.add(field.name)
951
952
  fields.append(field.name)
952
953
  logger.debug(f"Custom field {field.name} updated via pre_save() for object {obj.pk}")
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-bulk-hooks"
3
- version = "0.1.261"
3
+ version = "0.1.262"
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"