mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-10 18:39:36 -06:00
Fix record index for related objects
Use the parent object index as record index, and its own index only on the field name.
This commit is contained in:
parent
8a59fc733c
commit
8452222761
@ -1036,8 +1036,7 @@ module-bays:
|
|||||||
|
|
||||||
response = self.client.post(reverse('dcim:devicetype_bulk_import'), data=form_data, follow=True)
|
response = self.client.post(reverse('dcim:devicetype_bulk_import'), data=form_data, follow=True)
|
||||||
self.assertHttpStatus(response, 200)
|
self.assertHttpStatus(response, 200)
|
||||||
# TODO record index should be 2
|
self.assertContains(response, "Record 2 module-bays[3].name: This field is required.")
|
||||||
self.assertContains(response, "Record 3 module-bays[3].name: This field is required.")
|
|
||||||
|
|
||||||
def test_export_objects(self):
|
def test_export_objects(self):
|
||||||
url = reverse('dcim:devicetype_list')
|
url = reverse('dcim:devicetype_list')
|
||||||
|
|||||||
@ -368,7 +368,7 @@ class BulkImportView(GetReturnURLMixin, BaseMultiObjectView):
|
|||||||
error_messages.append(f"Record {index} {prefix}{field_name}: {err}")
|
error_messages.append(f"Record {index} {prefix}{field_name}: {err}")
|
||||||
return error_messages
|
return error_messages
|
||||||
|
|
||||||
def _save_object(self, model_form, request):
|
def _save_object(self, model_form, request, parent_idx):
|
||||||
_action = 'Updated' if model_form.instance.pk else 'Created'
|
_action = 'Updated' if model_form.instance.pk else 'Created'
|
||||||
|
|
||||||
# Save the primary object
|
# Save the primary object
|
||||||
@ -396,7 +396,7 @@ class BulkImportView(GetReturnURLMixin, BaseMultiObjectView):
|
|||||||
else:
|
else:
|
||||||
# Replicate errors on the related object form to the import form for display and abort
|
# Replicate errors on the related object form to the import form for display and abort
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
self._compile_form_errors(f.errors, index=i, prefix=f'{field_name}[{i}]')
|
self._compile_form_errors(f.errors, index=parent_idx, prefix=f'{field_name}[{i}]')
|
||||||
)
|
)
|
||||||
|
|
||||||
# Enforce object-level permissions on related objects
|
# Enforce object-level permissions on related objects
|
||||||
@ -481,7 +481,7 @@ class BulkImportView(GetReturnURLMixin, BaseMultiObjectView):
|
|||||||
restrict_form_fields(model_form, request.user)
|
restrict_form_fields(model_form, request.user)
|
||||||
|
|
||||||
if model_form.is_valid():
|
if model_form.is_valid():
|
||||||
obj = self._save_object(model_form, request)
|
obj = self._save_object(model_form, request, i)
|
||||||
saved_objects.append(obj)
|
saved_objects.append(obj)
|
||||||
else:
|
else:
|
||||||
# Raise model form errors
|
# Raise model form errors
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user