2
0
Arthur 3 жил өмнө
parent
commit
ce6bf9e5c1

+ 7 - 6
netbox/dcim/models/device_components.py

@@ -953,12 +953,13 @@ class RearPort(ModularComponentModel, CabledObjectModel):
         super().clean()
         super().clean()
 
 
         # Check that positions count is greater than or equal to the number of associated FrontPorts
         # Check that positions count is greater than or equal to the number of associated FrontPorts
-        frontport_count = self.frontports.count()
-        if self.positions < frontport_count:
-            raise ValidationError({
-                "positions": f"The number of positions cannot be less than the number of mapped front ports "
-                             f"({frontport_count})"
-            })
+        if self.pk:
+            frontport_count = self.frontports.count()
+            if self.positions < frontport_count:
+                raise ValidationError({
+                    "positions": f"The number of positions cannot be less than the number of mapped front ports "
+                                 f"({frontport_count})"
+                })
 
 
 
 
 #
 #

+ 1 - 1
netbox/dcim/models/devices.py

@@ -268,7 +268,7 @@ class DeviceType(NetBoxModel):
 
 
         if (
         if (
                 self.subdevice_role != SubdeviceRoleChoices.ROLE_PARENT
                 self.subdevice_role != SubdeviceRoleChoices.ROLE_PARENT
-        ) and self.devicebaytemplates.count():
+        ) and self.pk and self.devicebaytemplates.count():
             raise ValidationError({
             raise ValidationError({
                 'subdevice_role': "Must delete all device bay templates associated with this device before "
                 'subdevice_role': "Must delete all device bay templates associated with this device before "
                                   "declassifying it as a parent device."
                                   "declassifying it as a parent device."

+ 1 - 1
netbox/virtualization/models.py

@@ -367,7 +367,7 @@ class VirtualMachine(NetBoxModel, ConfigContextModel):
             })
             })
 
 
         # Validate primary IP addresses
         # Validate primary IP addresses
-        interfaces = self.interfaces.all()
+        interfaces = self.interfaces.all() if self.pk else None
         for family in (4, 6):
         for family in (4, 6):
             field = f'primary_ip{family}'
             field = f'primary_ip{family}'
             ip = getattr(self, field)
             ip = getattr(self, field)