Просмотр исходного кода

Merge pull request #10341 from netbox-community/10172-upgrade-django

10172 upgrade django
Jeremy Stretch 3 лет назад
Родитель
Сommit
cd5581aada

+ 1 - 1
base_requirements.txt

@@ -4,7 +4,7 @@ bleach
 
 # The Python web framework on which NetBox is built
 # https://github.com/django/django
-Django<4.1
+Django<4.2
 
 # Django middleware which permits cross-domain API requests
 # https://github.com/OttoYiu/django-cors-headers

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

@@ -953,12 +953,13 @@ class RearPort(ModularComponentModel, CabledObjectModel):
         super().clean()
 
         # 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 (
                 self.subdevice_role != SubdeviceRoleChoices.ROLE_PARENT
-        ) and self.devicebaytemplates.count():
+        ) and self.pk and self.devicebaytemplates.count():
             raise ValidationError({
                 'subdevice_role': "Must delete all device bay templates associated with this device before "
                                   "declassifying it as a parent device."

+ 1 - 1
netbox/virtualization/models.py

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

+ 1 - 1
requirements.txt

@@ -1,5 +1,5 @@
 bleach==5.0.1
-Django==4.0.7
+Django==4.1.1
 django-cors-headers==3.13.0
 django-debug-toolbar==3.6.0
 django-filter==22.1