django-bulk-hooks 0.2.53__py3-none-any.whl → 0.2.54__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/operations/mti_handler.py +16 -3
- {django_bulk_hooks-0.2.53.dist-info → django_bulk_hooks-0.2.54.dist-info}/METADATA +1 -1
- {django_bulk_hooks-0.2.53.dist-info → django_bulk_hooks-0.2.54.dist-info}/RECORD +5 -5
- {django_bulk_hooks-0.2.53.dist-info → django_bulk_hooks-0.2.54.dist-info}/LICENSE +0 -0
- {django_bulk_hooks-0.2.53.dist-info → django_bulk_hooks-0.2.54.dist-info}/WHEEL +0 -0
|
@@ -193,8 +193,12 @@ class MTIHandler:
|
|
|
193
193
|
if existing_pks_map is None:
|
|
194
194
|
existing_pks_map = {}
|
|
195
195
|
|
|
196
|
-
#
|
|
197
|
-
|
|
196
|
+
# Set PKs on existing objects so they can be updated
|
|
197
|
+
if existing_pks_map:
|
|
198
|
+
for obj in objs:
|
|
199
|
+
if id(obj) in existing_pks_map:
|
|
200
|
+
obj.pk = existing_pks_map[id(obj)]
|
|
201
|
+
obj.id = existing_pks_map[id(obj)]
|
|
198
202
|
|
|
199
203
|
# Build parent levels
|
|
200
204
|
parent_levels = self._build_parent_levels(
|
|
@@ -402,7 +406,12 @@ class MTIHandler:
|
|
|
402
406
|
"""
|
|
403
407
|
child_obj = child_model()
|
|
404
408
|
|
|
405
|
-
# Copy field values (excluding AutoField and
|
|
409
|
+
# Copy field values (excluding AutoField, parent links, and inherited fields)
|
|
410
|
+
# In MTI, child objects should only have values for fields defined directly on the child model
|
|
411
|
+
parent_fields = set()
|
|
412
|
+
for parent_model in child_model._meta.parents.keys():
|
|
413
|
+
parent_fields.update(f.name for f in parent_model._meta.local_fields)
|
|
414
|
+
|
|
406
415
|
for field in child_model._meta.local_fields:
|
|
407
416
|
if isinstance(field, AutoField):
|
|
408
417
|
continue
|
|
@@ -413,6 +422,10 @@ class MTIHandler:
|
|
|
413
422
|
if child_model._meta.get_ancestor_link(field.related_model) == field:
|
|
414
423
|
continue
|
|
415
424
|
|
|
425
|
+
# Skip inherited fields - these belong to parent models
|
|
426
|
+
if field.name in parent_fields:
|
|
427
|
+
continue
|
|
428
|
+
|
|
416
429
|
if hasattr(source_obj, field.name):
|
|
417
430
|
# Use centralized field value extraction for consistent FK handling
|
|
418
431
|
value = get_field_value_for_db(source_obj, field.name, source_obj.__class__)
|
|
@@ -16,12 +16,12 @@ django_bulk_hooks/operations/analyzer.py,sha256=wAG8sAG9NwfwNqG9z81VfGR7AANDzRmM
|
|
|
16
16
|
django_bulk_hooks/operations/bulk_executor.py,sha256=tMbcwQSN8xNoKL7-KC8m-XhGyqwaAtAQ5CAm3PYHl_Q,24122
|
|
17
17
|
django_bulk_hooks/operations/coordinator.py,sha256=iGavJLqe3eYRqFay8cMn6muwyRYzQo-HFGphsS5hL6g,30799
|
|
18
18
|
django_bulk_hooks/operations/field_utils.py,sha256=Tvr5bcZLG8imH-r2S85oui1Cbw6hGv3VtuIMn4OvsU4,2895
|
|
19
|
-
django_bulk_hooks/operations/mti_handler.py,sha256=
|
|
19
|
+
django_bulk_hooks/operations/mti_handler.py,sha256=r6F49-6tHbCeu2DFj6PX_7iU4lv6icbNBI8u-v1Fj9U,21092
|
|
20
20
|
django_bulk_hooks/operations/mti_plans.py,sha256=7STQ2oA2ZT8cEG3-t-6xciRAdf7OeSf0gRLXR_BRG-Q,3363
|
|
21
21
|
django_bulk_hooks/operations/record_classifier.py,sha256=kqML4aO11X9K3SSJ5DUlUukwI172j_Tk12Kr77ee8q8,7065
|
|
22
22
|
django_bulk_hooks/queryset.py,sha256=aQitlbexcVnmeAdc0jtO3hci39p4QEu4srQPEzozy5s,5546
|
|
23
23
|
django_bulk_hooks/registry.py,sha256=uum5jhGI3TPaoiXuA1MdBdu4gbE3rQGGwQ5YDjiMcjk,7949
|
|
24
|
-
django_bulk_hooks-0.2.
|
|
25
|
-
django_bulk_hooks-0.2.
|
|
26
|
-
django_bulk_hooks-0.2.
|
|
27
|
-
django_bulk_hooks-0.2.
|
|
24
|
+
django_bulk_hooks-0.2.54.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
|
|
25
|
+
django_bulk_hooks-0.2.54.dist-info/METADATA,sha256=ClVI63n_CscKcG0C_7B9rxCCgN4WnDoO5Rl-kWs0FhM,9265
|
|
26
|
+
django_bulk_hooks-0.2.54.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
27
|
+
django_bulk_hooks-0.2.54.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|