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.
- django_bulk_hooks/queryset.py +18 -0
- {django_bulk_hooks-0.1.147.dist-info → django_bulk_hooks-0.1.148.dist-info}/METADATA +1 -1
- {django_bulk_hooks-0.1.147.dist-info → django_bulk_hooks-0.1.148.dist-info}/RECORD +5 -5
- {django_bulk_hooks-0.1.147.dist-info → django_bulk_hooks-0.1.148.dist-info}/LICENSE +0 -0
- {django_bulk_hooks-0.1.147.dist-info → django_bulk_hooks-0.1.148.dist-info}/WHEEL +0 -0
django_bulk_hooks/queryset.py
CHANGED
|
@@ -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
|
|
@@ -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=
|
|
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.
|
|
15
|
-
django_bulk_hooks-0.1.
|
|
16
|
-
django_bulk_hooks-0.1.
|
|
17
|
-
django_bulk_hooks-0.1.
|
|
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,,
|
|
File without changes
|
|
File without changes
|