Просмотр исходного кода

#11711: Use CSVModelChoiceField for custom object fields during CSV import

Jeremy Stretch 3 лет назад
Родитель
Сommit
9f91b89467
1 измененных файлов с 7 добавлено и 5 удалено
  1. 7 5
      netbox/extras/models/customfields.py

+ 7 - 5
netbox/extras/models/customfields.py

@@ -20,10 +20,12 @@ from netbox.models import ChangeLoggedModel
 from netbox.models.features import CloningMixin, ExportTemplatesMixin, WebhooksMixin
 from netbox.search import FieldTypes
 from utilities import filters
-from utilities.forms import (
-    CSVChoiceField, CSVModelMultipleChoiceField, CSVMultipleChoiceField, DatePicker, DynamicModelChoiceField, DynamicModelMultipleChoiceField,
-    JSONField, LaxURLField, StaticSelectMultiple, StaticSelect, add_blank_choice,
+from utilities.forms.fields import (
+    CSVChoiceField, CSVModelChoiceField, CSVModelMultipleChoiceField, CSVMultipleChoiceField, DynamicModelChoiceField,
+    DynamicModelMultipleChoiceField, JSONField, LaxURLField,
 )
+from utilities.forms.widgets import DatePicker, StaticSelectMultiple, StaticSelect
+from utilities.forms.utils import add_blank_choice
 from utilities.querysets import RestrictedQuerySet
 from utilities.validators import validate_regex
 
@@ -413,7 +415,8 @@ class CustomField(CloningMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLogge
         # Object
         elif self.type == CustomFieldTypeChoices.TYPE_OBJECT:
             model = self.object_type.model_class()
-            field = DynamicModelChoiceField(
+            field_class = CSVModelChoiceField if for_csv_import else DynamicModelChoiceField
+            field = field_class(
                 queryset=model.objects.all(),
                 required=required,
                 initial=initial
@@ -423,7 +426,6 @@ class CustomField(CloningMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLogge
         elif self.type == CustomFieldTypeChoices.TYPE_MULTIOBJECT:
             model = self.object_type.model_class()
             field_class = CSVModelMultipleChoiceField if for_csv_import else DynamicModelMultipleChoiceField
-
             field = field_class(
                 queryset=model.objects.all(),
                 required=required,