diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index 5c61ec3d2..95034cb12 100644 --- a/docs/release-notes/version-3.1.md +++ b/docs/release-notes/version-3.1.md @@ -18,6 +18,7 @@ * [#8924](https://github.com/netbox-community/netbox/issues/8924) - Improve load time of custom script list * [#8932](https://github.com/netbox-community/netbox/issues/8932) - Fix error when setting null value for interface `rf_role` via REST API * [#8935](https://github.com/netbox-community/netbox/issues/8935) - Correct ordering of next/previous racks to use naturalized names +* [#8951](https://github.com/netbox-community/netbox/issues/8951) - Allow changing device type & platform to different manufacturer simultaneously --- diff --git a/netbox/dcim/forms/models.py b/netbox/dcim/forms/models.py index ca9aa6d3a..a3d6fba3d 100644 --- a/netbox/dcim/forms/models.py +++ b/netbox/dcim/forms/models.py @@ -605,11 +605,6 @@ class DeviceForm(TenancyForm, CustomFieldModelForm): # can be flipped from one face to another. self.fields['position'].widget.add_query_param('exclude', self.instance.pk) - # Limit platform by manufacturer - self.fields['platform'].queryset = Platform.objects.filter( - Q(manufacturer__isnull=True) | Q(manufacturer=self.instance.device_type.manufacturer) - ) - # Disable rack assignment if this is a child device installed in a parent device if self.instance.device_type.is_child_device and hasattr(self.instance, 'parent_bay'): self.fields['site'].disabled = True diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py index 6b8ff043d..737685fd9 100644 --- a/netbox/dcim/models/devices.py +++ b/netbox/dcim/models/devices.py @@ -739,8 +739,8 @@ class Device(PrimaryModel, ConfigContextModel): if hasattr(self, 'device_type') and self.platform: if self.platform.manufacturer and self.platform.manufacturer != self.device_type.manufacturer: raise ValidationError({ - 'platform': "The assigned platform is limited to {} device types, but this device's type belongs " - "to {}.".format(self.platform.manufacturer, self.device_type.manufacturer) + 'platform': f"The assigned platform is limited to {self.platform.manufacturer} device types, but " + f"this device's type belongs to {self.device_type.manufacturer}." }) # A Device can only be assigned to a Cluster in the same Site (or no Site)