mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-24 00:15:17 -06:00
move logic from deserialize to to_internal_value
This commit is contained in:
parent
6af1aae2e6
commit
291eebdba7
@ -69,6 +69,12 @@ class CustomFieldsDataField(Field):
|
||||
"values."
|
||||
)
|
||||
|
||||
for cf in self._get_custom_fields():
|
||||
if cf.name in data.keys():
|
||||
# Convert the mixed array of dict and id's into id's only
|
||||
if cf.type == CustomFieldTypeChoices.TYPE_MULTIOBJECT:
|
||||
data[cf.name] = [obj['id'] if isinstance(obj, dict) else obj for obj in data[cf.name]] or None
|
||||
|
||||
# If updating an existing instance, start with existing custom_field_data
|
||||
if self.parent.instance:
|
||||
data = {**self.parent.instance.custom_field_data, **data}
|
||||
|
@ -293,9 +293,8 @@ class CustomField(CloningMixin, ExportTemplatesMixin, WebhooksMixin, ChangeLogge
|
||||
model = self.object_type.model_class()
|
||||
return model.objects.filter(pk=value).first()
|
||||
if self.type == CustomFieldTypeChoices.TYPE_MULTIOBJECT:
|
||||
valueids = [obj['id'] if isinstance(obj, dict) else obj for obj in value] or None
|
||||
model = self.object_type.model_class()
|
||||
return model.objects.filter(pk__in=valueids)
|
||||
return model.objects.filter(pk__in=value)
|
||||
return value
|
||||
|
||||
def to_form_field(self, set_initial=True, enforce_required=True, for_csv_import=False):
|
||||
|
Loading…
Reference in New Issue
Block a user