django-bulk-hooks 0.1.147__py3-none-any.whl → 0.1.148__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.

@@ -325,6 +325,10 @@ class HookQuerySet(models.QuerySet):
325
325
  parent_objects_map = {}
326
326
 
327
327
  # Step 1: Do O(n) normal inserts into parent tables to get primary keys back
328
+ # Get bypass_hooks from kwargs
329
+ bypass_hooks = kwargs.get('bypass_hooks', False)
330
+ bypass_validation = kwargs.get('bypass_validation', False)
331
+
328
332
  for obj in batch:
329
333
  parent_instances = {}
330
334
  current_parent = None
@@ -332,6 +336,14 @@ class HookQuerySet(models.QuerySet):
332
336
  parent_obj = self._create_parent_instance(
333
337
  obj, model_class, current_parent
334
338
  )
339
+
340
+ # Fire parent hooks if not bypassed
341
+ if not bypass_hooks:
342
+ ctx = HookContext(model_class)
343
+ if not bypass_validation:
344
+ engine.run(model_class, VALIDATE_CREATE, [parent_obj], ctx=ctx)
345
+ engine.run(model_class, BEFORE_CREATE, [parent_obj], ctx=ctx)
346
+
335
347
  # Use Django's base manager to create the object and get PKs back
336
348
  # This bypasses hooks and the MTI exception
337
349
  field_values = {
@@ -340,10 +352,16 @@ class HookQuerySet(models.QuerySet):
340
352
  if hasattr(parent_obj, field.name) and getattr(parent_obj, field.name) is not None
341
353
  }
342
354
  created_obj = model_class._base_manager.using(self.db).create(**field_values)
355
+
343
356
  # Update the parent_obj with the created object's PK
344
357
  parent_obj.pk = created_obj.pk
345
358
  parent_obj._state.adding = False
346
359
  parent_obj._state.db = self.db
360
+
361
+ # Fire AFTER_CREATE hooks for parent
362
+ if not bypass_hooks:
363
+ engine.run(model_class, AFTER_CREATE, [parent_obj], ctx=ctx)
364
+
347
365
  parent_instances[model_class] = parent_obj
348
366
  current_parent = parent_obj
349
367
  parent_objects_map[id(obj)] = parent_instances
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-bulk-hooks
3
- Version: 0.1.147
3
+ Version: 0.1.148
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
@@ -9,9 +9,9 @@ django_bulk_hooks/handler.py,sha256=xZt8iNdYF-ACz-MnKMY0co6scWINU5V5wC1lyDn844k,
9
9
  django_bulk_hooks/manager.py,sha256=r54ct3S6AcqME2OsX-jPF944CEKcoSIW3qiAx_NwUaw,2801
10
10
  django_bulk_hooks/models.py,sha256=7RG7GrOdHXFjGVPV4FPRZVNMIHHW-hMCi6hn9LH_hVI,3331
11
11
  django_bulk_hooks/priority.py,sha256=HG_2D35nga68lBCZmSXTcplXrjFoRgZFRDOy4ROKonY,376
12
- django_bulk_hooks/queryset.py,sha256=Xhb3H5TOSgjuZU0cmAKiHeXJQh-46S7iuHlwtJ3232s,21112
12
+ django_bulk_hooks/queryset.py,sha256=3DOzQ_UJdrngllNskeTrQyxBnFydpS6Vr7Rml9ekrPQ,21914
13
13
  django_bulk_hooks/registry.py,sha256=-mQBizJ06nz_tajZBinViKx_uP2Tbc1tIpTEMv7lwKA,705
14
- django_bulk_hooks-0.1.147.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
15
- django_bulk_hooks-0.1.147.dist-info/METADATA,sha256=Gtlkty_v0nDtRzDNNZsFxcQwqetOXgFkzJrlBP4YjHU,6951
16
- django_bulk_hooks-0.1.147.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
17
- django_bulk_hooks-0.1.147.dist-info/RECORD,,
14
+ django_bulk_hooks-0.1.148.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
15
+ django_bulk_hooks-0.1.148.dist-info/METADATA,sha256=XN6Io-Ix4rlqmjjjATGrDjLL7CUR41Ljqfsk7FGW6Yc,6951
16
+ django_bulk_hooks-0.1.148.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
17
+ django_bulk_hooks-0.1.148.dist-info/RECORD,,