Răsfoiți Sursa

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

Jeremy Stretch 3 ani în urmă
părinte
comite
9f91b89467
1 a modificat fișierele cu 7 adăugiri și 5 ștergeri
  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.models.features import CloningMixin, ExportTemplatesMixin, WebhooksMixin
 from netbox.search import FieldTypes
 from netbox.search import FieldTypes
 from utilities import filters
 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.querysets import RestrictedQuerySet
 from utilities.validators import validate_regex
 from utilities.validators import validate_regex
 
 
@@ -413,7 +415,8 @@ class CustomField(CloningMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLogge
         # Object
         # Object
         elif self.type == CustomFieldTypeChoices.TYPE_OBJECT:
         elif self.type == CustomFieldTypeChoices.TYPE_OBJECT:
             model = self.object_type.model_class()
             model = self.object_type.model_class()
-            field = DynamicModelChoiceField(
+            field_class = CSVModelChoiceField if for_csv_import else DynamicModelChoiceField
+            field = field_class(
                 queryset=model.objects.all(),
                 queryset=model.objects.all(),
                 required=required,
                 required=required,
                 initial=initial
                 initial=initial
@@ -423,7 +426,6 @@ class CustomField(CloningMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLogge
         elif self.type == CustomFieldTypeChoices.TYPE_MULTIOBJECT:
         elif self.type == CustomFieldTypeChoices.TYPE_MULTIOBJECT:
             model = self.object_type.model_class()
             model = self.object_type.model_class()
             field_class = CSVModelMultipleChoiceField if for_csv_import else DynamicModelMultipleChoiceField
             field_class = CSVModelMultipleChoiceField if for_csv_import else DynamicModelMultipleChoiceField
-
             field = field_class(
             field = field_class(
                 queryset=model.objects.all(),
                 queryset=model.objects.all(),
                 required=required,
                 required=required,