From 3e51a5f9bf14feae1fc9fd72d55854e4ea3bfaca Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Wed, 4 Sep 2024 09:56:38 -0700 Subject: [PATCH 1/2] 17354 fix import with custom-field --- netbox/extras/models/customfields.py | 40 ++++++++++++++++++---------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/netbox/extras/models/customfields.py b/netbox/extras/models/customfields.py index 839a6ace91c..09fdf287237 100644 --- a/netbox/extras/models/customfields.py +++ b/netbox/extras/models/customfields.py @@ -524,24 +524,36 @@ def to_form_field(self, set_initial=True, enforce_required=True, enforce_visibil # Object elif self.type == CustomFieldTypeChoices.TYPE_OBJECT: model = self.related_object_type.model_class() - field_class = CSVModelChoiceField if for_csv_import else DynamicModelChoiceField - field = field_class( - queryset=model.objects.all(), - required=required, - initial=initial, - query_params=self.related_object_filter - ) + if for_csv_import: + field = CSVModelChoiceField( + queryset=model.objects.all(), + required=required, + initial=initial, + ) + else: + field = DynamicModelChoiceField( + queryset=model.objects.all(), + required=required, + initial=initial, + query_params=self.related_object_filter + ) # Multiple objects elif self.type == CustomFieldTypeChoices.TYPE_MULTIOBJECT: model = self.related_object_type.model_class() - field_class = CSVModelMultipleChoiceField if for_csv_import else DynamicModelMultipleChoiceField - field = field_class( - queryset=model.objects.all(), - required=required, - initial=initial, - query_params=self.related_object_filter - ) + if for_csv_import: + field = CSVModelMultipleChoiceField( + queryset=model.objects.all(), + required=required, + initial=initial, + ) + else: + field = DynamicModelMultipleChoiceField( + queryset=model.objects.all(), + required=required, + initial=initial, + query_params=self.related_object_filter + ) # Text else: From 098d250552f9ab7317f62e71ee52b27191923944 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Wed, 4 Sep 2024 13:00:31 -0700 Subject: [PATCH 2/2] 17354 change to use kwargs --- netbox/extras/models/customfields.py | 46 ++++++++++++---------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/netbox/extras/models/customfields.py b/netbox/extras/models/customfields.py index 09fdf287237..7a0a0861497 100644 --- a/netbox/extras/models/customfields.py +++ b/netbox/extras/models/customfields.py @@ -524,36 +524,30 @@ def to_form_field(self, set_initial=True, enforce_required=True, enforce_visibil # Object elif self.type == CustomFieldTypeChoices.TYPE_OBJECT: model = self.related_object_type.model_class() - if for_csv_import: - field = CSVModelChoiceField( - queryset=model.objects.all(), - required=required, - initial=initial, - ) - else: - field = DynamicModelChoiceField( - queryset=model.objects.all(), - required=required, - initial=initial, - query_params=self.related_object_filter - ) + field_class = CSVModelChoiceField if for_csv_import else DynamicModelChoiceField + kwargs = { + 'queryset': model.objects.all(), + 'required': required, + 'initial': initial, + } + if not for_csv_import: + kwargs['query_params'] = self.related_object_filter + + field = field_class(**kwargs) # Multiple objects elif self.type == CustomFieldTypeChoices.TYPE_MULTIOBJECT: model = self.related_object_type.model_class() - if for_csv_import: - field = CSVModelMultipleChoiceField( - queryset=model.objects.all(), - required=required, - initial=initial, - ) - else: - field = DynamicModelMultipleChoiceField( - queryset=model.objects.all(), - required=required, - initial=initial, - query_params=self.related_object_filter - ) + field_class = CSVModelMultipleChoiceField if for_csv_import else DynamicModelMultipleChoiceField + kwargs = { + 'queryset': model.objects.all(), + 'required': required, + 'initial': initial, + } + if not for_csv_import: + kwargs['query_params'] = self.related_object_filter + + field = field_class(**kwargs) # Text else: