From 941c4df9d970fd2c174ceff1698cac929566d7ca Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 31 Mar 2023 12:14:59 -0700 Subject: [PATCH] 12074 move device location setting to save from clean --- netbox/dcim/models/devices.py | 5 +++-- netbox/netbox/api/serializers/base.py | 5 ----- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py index 603129228..79dde0b2b 100644 --- a/netbox/dcim/models/devices.py +++ b/netbox/dcim/models/devices.py @@ -659,8 +659,6 @@ class Device(PrimaryModel, ConfigContextModel): raise ValidationError({ 'rack': f"Rack {self.rack} does not belong to location {self.location}.", }) - elif self.rack: - self.location = self.rack.location if self.rack is None: if self.face: @@ -801,6 +799,9 @@ class Device(PrimaryModel, ConfigContextModel): if is_new and not self.airflow: self.airflow = self.device_type.airflow + if self.rack: + self.location = self.rack.location + super().save(*args, **kwargs) # If this is a new Device, instantiate all the related components per the DeviceType definition diff --git a/netbox/netbox/api/serializers/base.py b/netbox/netbox/api/serializers/base.py index 1b107bb29..7fbe7b493 100644 --- a/netbox/netbox/api/serializers/base.py +++ b/netbox/netbox/api/serializers/base.py @@ -39,9 +39,4 @@ class ValidatedModelSerializer(BaseModelSerializer): for k, v in attrs.items(): setattr(instance, k, v) instance.full_clean() - - # copy any changes to data made in full_clean - for k, v in attrs.items(): - data[k] = getattr(instance, k) - return data