diff --git a/netbox/dcim/models/cables.py b/netbox/dcim/models/cables.py index de7ba0eb6..ba9e11d46 100644 --- a/netbox/dcim/models/cables.py +++ b/netbox/dcim/models/cables.py @@ -98,10 +98,10 @@ class Cable(PrimaryModel): super().__init__(*args, **kwargs) # A copy of the PK to be used by __str__ in case the object is deleted - self._pk = self.pk + self._pk = self.__dict__.get('id') # Cache the original status so we can check later if it's been changed - self._orig_status = self.status + self._orig_status = self.__dict__.get('status') self._terminations_modified = False diff --git a/netbox/dcim/models/device_component_templates.py b/netbox/dcim/models/device_component_templates.py index f58d2bbca..86b6d85fe 100644 --- a/netbox/dcim/models/device_component_templates.py +++ b/netbox/dcim/models/device_component_templates.py @@ -89,7 +89,7 @@ class ComponentTemplateModel(ChangeLoggedModel, TrackingModelMixin): super().__init__(*args, **kwargs) # Cache the original DeviceType ID for reference under clean() - self._original_device_type = self.device_type_id + self._original_device_type = self.__dict__.get('device_type_id') def to_objectchange(self, action): objectchange = super().to_objectchange(action) diff --git a/netbox/dcim/models/device_components.py b/netbox/dcim/models/device_components.py index f42ae5895..639f8aadb 100644 --- a/netbox/dcim/models/device_components.py +++ b/netbox/dcim/models/device_components.py @@ -86,7 +86,7 @@ class ComponentModel(NetBoxModel): super().__init__(*args, **kwargs) # Cache the original Device ID for reference under clean() - self._original_device = self.device_id + self._original_device = self.__dict__.get('device_id') def __str__(self): if self.label: diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py index 857251caf..9cca724ce 100644 --- a/netbox/dcim/models/devices.py +++ b/netbox/dcim/models/devices.py @@ -205,11 +205,11 @@ class DeviceType(ImageAttachmentsMixin, PrimaryModel, WeightMixin): super().__init__(*args, **kwargs) # Save a copy of u_height for validation in clean() - self._original_u_height = self.u_height + self._original_u_height = self.__dict__.get('u_height') # Save references to the original front/rear images - self._original_front_image = self.front_image - self._original_rear_image = self.rear_image + self._original_front_image = self.__dict__.get('front_image') + self._original_rear_image = self.__dict__.get('rear_image') def get_absolute_url(self): return reverse('dcim:devicetype', args=[self.pk]) diff --git a/netbox/extras/models/customfields.py b/netbox/extras/models/customfields.py index 0c4a0c615..abea48032 100644 --- a/netbox/extras/models/customfields.py +++ b/netbox/extras/models/customfields.py @@ -219,7 +219,7 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel): super().__init__(*args, **kwargs) # Cache instance's original name so we can check later whether it has changed - self._name = self.name + self._name = self.__dict__.get('name') @property def search_type(self): diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 6cf6f1640..9efcc02dc 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -467,11 +467,7 @@ class TagBulkDeleteView(generic.BulkDeleteView): # class ConfigContextListView(generic.ObjectListView): - queryset = ConfigContext.objects.all().prefetch_related( - 'regions', 'site_groups', 'sites', 'locations', 'device_types', - 'roles', 'platforms', 'cluster_types', 'cluster_groups', 'clusters', - 'tenant_groups', 'tenants', 'tags', - ) + queryset = ConfigContext.objects.all() filterset = filtersets.ConfigContextFilterSet filterset_form = forms.ConfigContextFilterForm table = tables.ConfigContextTable @@ -519,20 +515,12 @@ class ConfigContextView(generic.ObjectView): @register_model_view(ConfigContext, 'edit') class ConfigContextEditView(generic.ObjectEditView): - queryset = ConfigContext.objects.all().prefetch_related( - 'regions', 'site_groups', 'sites', 'locations', 'device_types', - 'roles', 'platforms', 'cluster_types', 'cluster_groups', 'clusters', - 'tenant_groups', 'tenants', 'tags', - ) + queryset = ConfigContext.objects.all() form = forms.ConfigContextForm class ConfigContextBulkEditView(generic.BulkEditView): - queryset = ConfigContext.objects.all().prefetch_related( - 'regions', 'site_groups', 'sites', 'locations', 'device_types', - 'roles', 'platforms', 'cluster_types', 'cluster_groups', 'clusters', - 'tenant_groups', 'tenants', 'tags', - ) + queryset = ConfigContext.objects.all() filterset = filtersets.ConfigContextFilterSet table = tables.ConfigContextTable form = forms.ConfigContextBulkEditForm diff --git a/netbox/ipam/models/ip.py b/netbox/ipam/models/ip.py index 2456fa021..00c08b3bc 100644 --- a/netbox/ipam/models/ip.py +++ b/netbox/ipam/models/ip.py @@ -290,8 +290,8 @@ class Prefix(GetAvailablePrefixesMixin, PrimaryModel): super().__init__(*args, **kwargs) # Cache the original prefix and VRF so we can check if they have changed on post_save - self._prefix = self.prefix - self._vrf_id = self.vrf_id + self._prefix = self.__dict__.get('prefix') + self._vrf_id = self.__dict__.get('vrf_id') def __str__(self): return str(self.prefix)