diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f5ff5253..ae1edbfc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ v2.5.4 (FUTURE) * [#2795](https://github.com/digitalocean/netbox/issues/2795) - Fix duplicate display of pagination controls on child prefix/IP tables * [#2798](https://github.com/digitalocean/netbox/issues/2798) - Properly URL-encode "map it" link on site view * [#2802](https://github.com/digitalocean/netbox/issues/2802) - Better error handling for unsupported NAPALM methods +* [#2816](https://github.com/digitalocean/netbox/issues/2816) - Handle exception when deleting a device with connected components --- diff --git a/netbox/dcim/models.py b/netbox/dcim/models.py index 1d13d119b..89e786a1b 100644 --- a/netbox/dcim/models.py +++ b/netbox/dcim/models.py @@ -54,7 +54,11 @@ class ComponentModel(models.Model): """ Log an ObjectChange including the parent Device/VM. """ - parent = self.device if self.device is not None else getattr(self, 'virtual_machine', None) + try: + parent = getattr(self, 'device', None) or getattr(self, 'virtual_machine', None) + except ObjectDoesNotExist: + # The parent device/VM has already been deleted + parent = None ObjectChange( user=user, request_id=request_id,