diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c7f07585..c0f59f289 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ v2.5.8 (FUTURE) * [#2972](https://github.com/digitalocean/netbox/issues/2972) - Improve ContentTypeField serializer to elegantly handle invalid data * [#2976](https://github.com/digitalocean/netbox/issues/2976) - Add delete button to tag view * [#2980](https://github.com/digitalocean/netbox/issues/2980) - Improve rendering time for API docs +* [#2984](https://github.com/digitalocean/netbox/issues/2984) - Fix logging of unlabeled cable ID on cable deletion --- diff --git a/netbox/dcim/models.py b/netbox/dcim/models.py index 8133cbfb4..004d7b1aa 100644 --- a/netbox/dcim/models.py +++ b/netbox/dcim/models.py @@ -2557,16 +2557,15 @@ class Cable(ChangeLoggedModel): ('termination_b_type', 'termination_b_id'), ) - def __init__(self, *args, **kwargs): - - super().__init__(*args, **kwargs) - - # Create an ID string for use by __str__(). We have to save a copy of pk since it's nullified after .delete() - # is called. - self.id_string = '#{}'.format(self.pk) - def __str__(self): - return self.label or self.id_string + if self.label: + return self.label + + # Save a copy of the PK on the instance since it's nullified if .delete() is called + if not hasattr(self, 'id_string'): + self.id_string = '#{}'.format(self.pk) + + return self.id_string def get_absolute_url(self): return reverse('dcim:cable', args=[self.pk])