diff --git a/netbox/dcim/models/device_components.py b/netbox/dcim/models/device_components.py index c30ce3a97..d237924c1 100644 --- a/netbox/dcim/models/device_components.py +++ b/netbox/dcim/models/device_components.py @@ -67,6 +67,7 @@ class ComponentModel(NetBoxModel): max_length=200, blank=True ) + _can_switch_device = False class Meta: abstract = True @@ -97,7 +98,7 @@ class ComponentModel(NetBoxModel): def clean(self): super().clean() - if self.pk is not None and self._original_device != self.device_id: + if (not self._can_switch_device) and (self.pk is not None) and (self._original_device != self.device_id): raise ValidationError({ "device": "Components cannot be moved to a different device." }) @@ -1128,6 +1129,7 @@ class InventoryItem(MPTTModel, ComponentModel): objects = TreeManager() clone_fields = ('device', 'parent', 'role', 'manufacturer', 'part_id',) + _can_switch_device = True class Meta: ordering = ('device__id', 'parent__id', '_name')