When bulk-importing related objects, add the errors to the base form instead of the model_form

This commit is contained in:
kkthxbye-code 2023-05-01 08:18:13 +02:00
parent 25dc7e234d
commit be344369de

View File

@ -313,7 +313,7 @@ class BulkImportView(GetReturnURLMixin, BaseMultiObjectView):
"""
return data
def _save_object(self, model_form, request):
def _save_object(self, model_form, request, form):
# Save the primary object
obj = self.save_object(model_form, request)
@ -342,7 +342,7 @@ class BulkImportView(GetReturnURLMixin, BaseMultiObjectView):
for subfield_name, errors in f.errors.items():
for err in errors:
err_msg = "{}[{}] {}: {}".format(field_name, i, subfield_name, err)
model_form.add_error(None, err_msg)
form.add_error(None, err_msg)
raise AbortTransaction()
# Enforce object-level permissions on related objects
@ -405,7 +405,7 @@ class BulkImportView(GetReturnURLMixin, BaseMultiObjectView):
restrict_form_fields(model_form, request.user)
if model_form.is_valid():
obj = self._save_object(model_form, request)
obj = self._save_object(model_form, request, form)
saved_objects.append(obj)
else:
# Replicate model form errors for display