|
|
@@ -3027,15 +3027,14 @@ class Cable(ChangeLoggedModel):
|
|
|
('termination_b_type', 'termination_b_id'),
|
|
|
)
|
|
|
|
|
|
- def __str__(self):
|
|
|
- if self.label:
|
|
|
- return self.label
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
|
|
|
- # 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)
|
|
|
+ # A copy of the PK to be used by __str__ in case the object is deleted
|
|
|
+ self._pk = self.pk
|
|
|
|
|
|
- return self.id_string
|
|
|
+ def __str__(self):
|
|
|
+ return self.label or '#{}'.format(self._pk)
|
|
|
|
|
|
def get_absolute_url(self):
|
|
|
return reverse('dcim:cable', args=[self.pk])
|
|
|
@@ -3142,6 +3141,9 @@ class Cable(ChangeLoggedModel):
|
|
|
|
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
+ # Update the private pk used in __str__ in case this is a new object (i.e. just got its pk)
|
|
|
+ self._pk = self.pk
|
|
|
+
|
|
|
def to_csv(self):
|
|
|
return (
|
|
|
'{}.{}'.format(self.termination_a_type.app_label, self.termination_a_type.model),
|