From 73bf4f45c3a0ac186556fab55e48ed0b96555e83 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 12 May 2017 15:31:34 -0400 Subject: [PATCH] Adapted model get_display_name() to better handle unsaved instances --- netbox/dcim/models.py | 17 ++++++++--------- netbox/ipam/models.py | 6 ++++-- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/netbox/dcim/models.py b/netbox/dcim/models.py index f991d5796..fa1407487 100644 --- a/netbox/dcim/models.py +++ b/netbox/dcim/models.py @@ -410,7 +410,7 @@ class Rack(CreatedUpdatedModel, CustomFieldModel): ] def __str__(self): - return self.display_name + return self.display_name or super(Rack, self).__str__() def get_absolute_url(self): return reverse('dcim:rack', args=[self.pk]) @@ -467,7 +467,9 @@ class Rack(CreatedUpdatedModel, CustomFieldModel): def display_name(self): if self.facility_id: return u"{} ({})".format(self.name, self.facility_id) - return self.name + elif self.name: + return self.name + return u"" def get_rack_units(self, face=RACK_FACE_FRONT, exclude=None, remove_redundant=False): """ @@ -983,7 +985,7 @@ class Device(CreatedUpdatedModel, CustomFieldModel): unique_together = ['rack', 'position', 'face'] def __str__(self): - return self.display_name + return self.display_name or super(Device, self).__str__() def get_absolute_url(self): return reverse('dcim:device', args=[self.pk]) @@ -1102,12 +1104,9 @@ class Device(CreatedUpdatedModel, CustomFieldModel): def display_name(self): if self.name: return self.name - elif self.position: - return u"{} ({} U{})".format(self.device_type, self.rack.name, self.position) - elif self.rack: - return u"{} ({})".format(self.device_type, self.rack.name) - else: - return u"{} ({})".format(self.device_type, self.site.name) + elif hasattr(self, 'device_type'): + return u"{}".format(self.device_type) + return u"" @property def identifier(self): diff --git a/netbox/ipam/models.py b/netbox/ipam/models.py index 0bed7615e..980b17913 100644 --- a/netbox/ipam/models.py +++ b/netbox/ipam/models.py @@ -538,7 +538,7 @@ class VLAN(CreatedUpdatedModel, CustomFieldModel): verbose_name_plural = 'VLANs' def __str__(self): - return self.display_name + return self.display_name or super(VLAN, self).__str__() def get_absolute_url(self): return reverse('ipam:vlan', args=[self.pk]) @@ -565,7 +565,9 @@ class VLAN(CreatedUpdatedModel, CustomFieldModel): @property def display_name(self): - return u'{} ({})'.format(self.vid, self.name) + if self.vid and self.name: + return u"{} ({})".format(self.vid, self.name) + return None def get_status_class(self): return STATUS_CHOICE_CLASSES[self.status]