From 50fc15fadbd7270f2f8e174e17597e4b8f4a2c97 Mon Sep 17 00:00:00 2001 From: Brian Tiemann Date: Mon, 23 Sep 2024 20:01:50 -0400 Subject: [PATCH] Extend _clean_fields to catch MultipleObjectsReturned and display a toast with a useful message instead of a 500 error --- netbox/netbox/forms/base.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/netbox/netbox/forms/base.py b/netbox/netbox/forms/base.py index 74ac4b0e0..e923d37f2 100644 --- a/netbox/netbox/forms/base.py +++ b/netbox/netbox/forms/base.py @@ -2,6 +2,7 @@ import json from django import forms from django.contrib.contenttypes.models import ContentType +from django.core.exceptions import MultipleObjectsReturned from django.db.models import Q from django.utils.translation import gettext_lazy as _ @@ -99,6 +100,12 @@ class NetBoxModelImportForm(CSVModelForm, NetBoxModelForm): def _get_form_field(self, customfield): return customfield.to_form_field(for_csv_import=True) + def _clean_fields(self): + try: + return super()._clean_fields() + except MultipleObjectsReturned as e: + self.add_error(None, f'A non-unique value was provided for one or more fields: {e}') + class NetBoxModelBulkEditForm(CustomFieldsMixin, forms.Form): """