django-bulk-hooks 0.1.128__tar.gz → 0.1.131__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.128 → django_bulk_hooks-0.1.131}/PKG-INFO +1 -1
  2. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/queryset.py +11 -5
  3. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/pyproject.toml +1 -1
  4. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/LICENSE +0 -0
  5. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/README.md +0 -0
  6. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/__init__.py +0 -0
  7. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/conditions.py +0 -0
  8. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/constants.py +0 -0
  9. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/context.py +0 -0
  10. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/decorators.py +0 -0
  11. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/engine.py +0 -0
  12. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/enums.py +0 -0
  13. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/handler.py +0 -0
  14. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/manager.py +0 -0
  15. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/models.py +0 -0
  16. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/django_bulk_hooks/priority.py +0 -0
  17. {django_bulk_hooks-0.1.128 → django_bulk_hooks-0.1.131}/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.128
3
+ Version: 0.1.131
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
@@ -332,12 +332,18 @@ class HookQuerySet(models.QuerySet):
332
332
  parent_obj = self._create_parent_instance(
333
333
  obj, model_class, current_parent
334
334
  )
335
- # Use Django's internal _insert method to get PKs back
335
+ # Use Django's base manager to create the object and get PKs back
336
336
  # This bypasses hooks and the MTI exception
337
- # Get the fields to insert (all local fields except auto fields)
338
- fields = [f for f in parent_obj._meta.local_fields if not isinstance(f, AutoField)]
339
- # For Django 4.2+, _do_insert requires fields, returning_fields, and raw parameters
340
- parent_obj._do_insert(parent_obj._meta, fields, fields, False, using=self.db)
337
+ field_values = {
338
+ field.name: getattr(parent_obj, field.name)
339
+ for field in model_class._meta.local_fields
340
+ if hasattr(parent_obj, field.name) and getattr(parent_obj, field.name) is not None
341
+ }
342
+ created_obj = model_class._base_manager.using(self.db).create(**field_values)
343
+ # Update the parent_obj with the created object's PK
344
+ parent_obj.pk = created_obj.pk
345
+ parent_obj._state.adding = False
346
+ parent_obj._state.db = self.db
341
347
  parent_instances[model_class] = parent_obj
342
348
  current_parent = parent_obj
343
349
  parent_objects_map[id(obj)] = parent_instances
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-bulk-hooks"
3
- version = "0.1.128"
3
+ version = "0.1.131"
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"