django-bulk-hooks 0.1.210__py3-none-any.whl → 0.1.211__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/engine.py +6 -0
- django_bulk_hooks/queryset.py +2 -5
- {django_bulk_hooks-0.1.210.dist-info → django_bulk_hooks-0.1.211.dist-info}/METADATA +1 -1
- {django_bulk_hooks-0.1.210.dist-info → django_bulk_hooks-0.1.211.dist-info}/RECORD +6 -6
- {django_bulk_hooks-0.1.210.dist-info → django_bulk_hooks-0.1.211.dist-info}/LICENSE +0 -0
- {django_bulk_hooks-0.1.210.dist-info → django_bulk_hooks-0.1.211.dist-info}/WHEEL +0 -0
django_bulk_hooks/engine.py
CHANGED
|
@@ -20,9 +20,15 @@ def run(model_cls, event, new_records, old_records=None, ctx=None):
|
|
|
20
20
|
if not hooks:
|
|
21
21
|
return
|
|
22
22
|
|
|
23
|
+
import traceback
|
|
24
|
+
|
|
25
|
+
stack = traceback.format_stack()
|
|
23
26
|
print(
|
|
24
27
|
f"DEBUG: engine.run called for {model_cls.__name__}.{event} with {len(new_records)} records"
|
|
25
28
|
)
|
|
29
|
+
print(f"DEBUG: Call stack (last 3 frames):")
|
|
30
|
+
for line in stack[-4:-1]: # Show last 3 frames before this one
|
|
31
|
+
print(f" {line.strip()}")
|
|
26
32
|
|
|
27
33
|
# For BEFORE_* events, run model.clean() first for validation
|
|
28
34
|
if event.startswith("before_"):
|
django_bulk_hooks/queryset.py
CHANGED
|
@@ -209,9 +209,6 @@ class HookQuerySetMixin:
|
|
|
209
209
|
"""
|
|
210
210
|
Bulk update objects in the database with MTI support.
|
|
211
211
|
"""
|
|
212
|
-
print(
|
|
213
|
-
f"DEBUG: bulk_update called for {self.model.__name__} with bypass_hooks={bypass_hooks}"
|
|
214
|
-
)
|
|
215
212
|
model_cls = self.model
|
|
216
213
|
|
|
217
214
|
if not objs:
|
|
@@ -248,6 +245,8 @@ class HookQuerySetMixin:
|
|
|
248
245
|
|
|
249
246
|
# Then run business logic hooks
|
|
250
247
|
engine.run(model_cls, BEFORE_UPDATE, objs, originals, ctx=ctx)
|
|
248
|
+
else:
|
|
249
|
+
print(f"DEBUG: bypass_hooks=True, skipping hooks for {len(objs)} objects")
|
|
251
250
|
|
|
252
251
|
# Detect modified fields during hooks
|
|
253
252
|
modified_fields = self._detect_modified_fields(objs, originals)
|
|
@@ -255,8 +254,6 @@ class HookQuerySetMixin:
|
|
|
255
254
|
fields_set = set(fields)
|
|
256
255
|
fields_set.update(modified_fields)
|
|
257
256
|
fields = list(fields_set)
|
|
258
|
-
else:
|
|
259
|
-
print(f"DEBUG: bypass_hooks=True, skipping hooks for {len(objs)} objects")
|
|
260
257
|
|
|
261
258
|
# Handle auto_now fields like Django's update_or_create does
|
|
262
259
|
fields_set = set(fields)
|
|
@@ -3,15 +3,15 @@ django_bulk_hooks/conditions.py,sha256=mTvlLcttixbXRkTSNZU5VewkPUavbXRuD2BkJbVWM
|
|
|
3
3
|
django_bulk_hooks/constants.py,sha256=3x1H1fSUUNo0DZONN7GUVDuySZctTR-jtByBHmAIX5w,303
|
|
4
4
|
django_bulk_hooks/context.py,sha256=4IPuOX8TBAYBEMzN0RNHWgE6Giy2ZnR5uRXfd1cpIwk,1051
|
|
5
5
|
django_bulk_hooks/decorators.py,sha256=WD7Jn7QAvY8F4wOsYlIpjoM9-FdHXSKB7hH9ot-lkYQ,4896
|
|
6
|
-
django_bulk_hooks/engine.py,sha256=
|
|
6
|
+
django_bulk_hooks/engine.py,sha256=aoeGCW9dne_5qB4-0YpndC3vnLGlLOYGwyWjmbFbZvg,2133
|
|
7
7
|
django_bulk_hooks/enums.py,sha256=Zo8_tJzuzZ2IKfVc7gZ-0tWPT8q1QhqZbAyoh9ZVJbs,381
|
|
8
8
|
django_bulk_hooks/handler.py,sha256=xZt8iNdYF-ACz-MnKMY0co6scWINU5V5wC1lyDn844k,4854
|
|
9
9
|
django_bulk_hooks/manager.py,sha256=nfWiwU5-yAoxdnQsUMohxtyCpkV0MBv6X3wmipr9eQY,3697
|
|
10
10
|
django_bulk_hooks/models.py,sha256=TA2dBIA1nJBiYt6joefWkpFIQZWysF9kZlkBYvEe59c,4358
|
|
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=MnyNHRorpuq5JL8vHBakzCNBgqyWLYsaOrv9DtrP5nk,31941
|
|
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.211.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
|
|
15
|
+
django_bulk_hooks-0.1.211.dist-info/METADATA,sha256=-DyWgZDqIr04xEoC_BY4qdhSPwLQDOpXhNz3O0byfXk,9049
|
|
16
|
+
django_bulk_hooks-0.1.211.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
17
|
+
django_bulk_hooks-0.1.211.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|