From 5def0e91d7b1e20392d7a06a2261ddfab13fd1b3 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 15 Jul 2016 09:45:45 -0400 Subject: [PATCH] Fixes #307: Validate device type assignment during import validation --- netbox/dcim/models.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/netbox/dcim/models.py b/netbox/dcim/models.py index ae0817eda..9224f3436 100644 --- a/netbox/dcim/models.py +++ b/netbox/dcim/models.py @@ -624,6 +624,10 @@ class Device(CreatedUpdatedModel): def clean(self): + # Validate device type assignment + if not hasattr(self, 'device_type'): + raise ValidationError("Must specify device type.") + # Child devices cannot be assigned to a rack face/unit if self.device_type.is_child_device and (self.face is not None or self.position): raise ValidationError("Child device types cannot be assigned a rack face or position.") @@ -633,10 +637,7 @@ class Device(CreatedUpdatedModel): raise ValidationError("Must specify rack face with rack position.") # Validate rack space - try: - rack_face = self.face if not self.device_type.is_full_depth else None - except DeviceType.DoesNotExist: - raise ValidationError("Must specify device type.") + rack_face = self.face if not self.device_type.is_full_depth else None exclude_list = [self.pk] if self.pk else [] try: available_units = self.rack.get_available_units(u_height=self.device_type.u_height, rack_face=rack_face,