django-bulk-hooks 0.2.51__py3-none-any.whl → 0.2.52__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 +10 -7
- {django_bulk_hooks-0.2.51.dist-info → django_bulk_hooks-0.2.52.dist-info}/METADATA +1 -1
- {django_bulk_hooks-0.2.51.dist-info → django_bulk_hooks-0.2.52.dist-info}/RECORD +5 -5
- {django_bulk_hooks-0.2.51.dist-info → django_bulk_hooks-0.2.52.dist-info}/LICENSE +0 -0
- {django_bulk_hooks-0.2.51.dist-info → django_bulk_hooks-0.2.52.dist-info}/WHEEL +0 -0
|
@@ -121,26 +121,29 @@ class MTIHandler:
|
|
|
121
121
|
- If parent exists but child doesn't: creating child for existing parent → AFTER_UPDATE
|
|
122
122
|
- If neither exists: creating both parent and child → AFTER_CREATE
|
|
123
123
|
|
|
124
|
-
Therefore, we
|
|
125
|
-
|
|
124
|
+
Therefore, we find the model that contains all the unique fields, regardless
|
|
125
|
+
of whether it's the parent or child model.
|
|
126
126
|
|
|
127
127
|
Args:
|
|
128
128
|
unique_fields: List of field names forming the unique constraint
|
|
129
129
|
|
|
130
130
|
Returns:
|
|
131
|
-
Model class to query for existing records (
|
|
131
|
+
Model class to query for existing records (model containing unique fields)
|
|
132
132
|
"""
|
|
133
133
|
if not unique_fields:
|
|
134
134
|
return self.model_cls
|
|
135
135
|
|
|
136
136
|
inheritance_chain = self.get_inheritance_chain()
|
|
137
137
|
|
|
138
|
-
# For MTI models
|
|
139
|
-
# This ensures we check if the parent exists, which determines create vs update hooks
|
|
138
|
+
# For MTI models, find the model in the chain that contains ALL unique fields
|
|
140
139
|
if len(inheritance_chain) > 1:
|
|
141
|
-
|
|
140
|
+
# Walk through inheritance chain from child to parent
|
|
141
|
+
for model in reversed(inheritance_chain): # Start with child, end with root parent
|
|
142
|
+
model_field_names = {f.name for f in model._meta.local_fields}
|
|
143
|
+
if all(field in model_field_names for field in unique_fields):
|
|
144
|
+
return model
|
|
142
145
|
|
|
143
|
-
# For non-MTI models
|
|
146
|
+
# For non-MTI models or as fallback
|
|
144
147
|
return self.model_cls
|
|
145
148
|
|
|
146
149
|
# ==================== MTI BULK CREATE PLANNING ====================
|
|
@@ -16,12 +16,12 @@ django_bulk_hooks/operations/analyzer.py,sha256=wAG8sAG9NwfwNqG9z81VfGR7AANDzRmM
|
|
|
16
16
|
django_bulk_hooks/operations/bulk_executor.py,sha256=F_nXtqB2ZRuAEZtSzqtKedqH_TDkNQDPLVmVUT8jsPQ,24794
|
|
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=Ro80PGrgm9O9wWuFwhiarcOqLlU95iCOtuvaDIcshQU,20648
|
|
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.52.dist-info/LICENSE,sha256=dguKIcbDGeZD-vXWdLyErPUALYOvtX_fO4Zjhq481uk,1088
|
|
25
|
+
django_bulk_hooks-0.2.52.dist-info/METADATA,sha256=VijPFOPGvpd1c6xb3W4WEcjCN6RJP4ASCi_2wJ1U660,9265
|
|
26
|
+
django_bulk_hooks-0.2.52.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
27
|
+
django_bulk_hooks-0.2.52.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|