django-bulk-hooks 0.1.245__py3-none-any.whl → 0.1.246__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 +7 -18
- {django_bulk_hooks-0.1.245.dist-info → django_bulk_hooks-0.1.246.dist-info}/METADATA +1 -1
- {django_bulk_hooks-0.1.245.dist-info → django_bulk_hooks-0.1.246.dist-info}/RECORD +5 -5
- {django_bulk_hooks-0.1.245.dist-info → django_bulk_hooks-0.1.246.dist-info}/LICENSE +0 -0
- {django_bulk_hooks-0.1.245.dist-info → django_bulk_hooks-0.1.246.dist-info}/WHEEL +0 -0
django_bulk_hooks/queryset.py
CHANGED
|
@@ -172,21 +172,15 @@ class HookQuerySetMixin:
|
|
|
172
172
|
logger.debug("update: running hooks with Salesforce-style behavior")
|
|
173
173
|
ctx = HookContext(model_cls, bypass_hooks=False)
|
|
174
174
|
|
|
175
|
-
#
|
|
176
|
-
#
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
# Then run BEFORE_UPDATE hooks
|
|
181
|
-
engine.run(model_cls, BEFORE_UPDATE, instances, originals, ctx=ctx)
|
|
175
|
+
# Run hooks before database update for both Subquery and non-Subquery cases
|
|
176
|
+
# Run validation hooks first
|
|
177
|
+
engine.run(model_cls, VALIDATE_UPDATE, instances, originals, ctx=ctx)
|
|
178
|
+
# Then run BEFORE_UPDATE hooks
|
|
179
|
+
engine.run(model_cls, BEFORE_UPDATE, instances, originals, ctx=ctx)
|
|
182
180
|
|
|
183
181
|
# Persist any additional field mutations made by BEFORE_UPDATE hooks.
|
|
184
182
|
# Build CASE statements per modified field not already present in kwargs.
|
|
185
|
-
modified_fields = (
|
|
186
|
-
self._detect_modified_fields(instances, originals)
|
|
187
|
-
if not has_subquery
|
|
188
|
-
else set()
|
|
189
|
-
)
|
|
183
|
+
modified_fields = self._detect_modified_fields(instances, originals)
|
|
190
184
|
extra_fields = [f for f in modified_fields if f not in kwargs]
|
|
191
185
|
if extra_fields:
|
|
192
186
|
case_statements = {}
|
|
@@ -384,7 +378,7 @@ class HookQuerySetMixin:
|
|
|
384
378
|
raise
|
|
385
379
|
|
|
386
380
|
# If we used Subquery objects, refresh the instances to get computed values
|
|
387
|
-
#
|
|
381
|
+
# for AFTER_UPDATE hooks so HasChanged conditions work correctly
|
|
388
382
|
if has_subquery and instances and not current_bypass_hooks:
|
|
389
383
|
logger.debug(
|
|
390
384
|
"Refreshing instances with Subquery computed values before running hooks"
|
|
@@ -408,12 +402,7 @@ class HookQuerySetMixin:
|
|
|
408
402
|
getattr(refreshed_instance, field.name),
|
|
409
403
|
)
|
|
410
404
|
|
|
411
|
-
# Now run the hooks with the refreshed instances containing computed values
|
|
412
405
|
logger.debug("Running hooks after Subquery refresh")
|
|
413
|
-
# Run validation hooks first
|
|
414
|
-
engine.run(model_cls, VALIDATE_UPDATE, instances, originals, ctx=ctx)
|
|
415
|
-
# Then run BEFORE_UPDATE hooks
|
|
416
|
-
engine.run(model_cls, BEFORE_UPDATE, instances, originals, ctx=ctx)
|
|
417
406
|
|
|
418
407
|
# Salesforce-style: Always run AFTER_UPDATE hooks unless explicitly bypassed
|
|
419
408
|
if not current_bypass_hooks:
|
|
@@ -9,9 +9,9 @@ django_bulk_hooks/handler.py,sha256=e_GACTQT-pFF-zL7POeo232MgOikUoCLcxDVInAUiBw,
|
|
|
9
9
|
django_bulk_hooks/manager.py,sha256=nfWiwU5-yAoxdnQsUMohxtyCpkV0MBv6X3wmipr9eQY,3697
|
|
10
10
|
django_bulk_hooks/models.py,sha256=WtSfc4GBOG_oOt8n37cVvid0MtFIGze9JYKSixil2y0,4370
|
|
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=4M5G5hbpEJQ8PvP9ASMY_vIZO3DKJhXxudQiPCMBJc4,50410
|
|
13
13
|
django_bulk_hooks/registry.py,sha256=GRUTGVQEO2sdkC9OaZ9Q3U7mM-3Ix83uTyvrlTtpatw,1317
|
|
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.246.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
|
|
15
|
+
django_bulk_hooks-0.1.246.dist-info/METADATA,sha256=f2S2FbuQwyGLpkUhfzwP3OwWonklqvpEwacnJQpyQJs,9049
|
|
16
|
+
django_bulk_hooks-0.1.246.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
17
|
+
django_bulk_hooks-0.1.246.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|