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,