Parcourir la source

Fixes #1907: Allow removing an IP as the primary for a device when editing the IP directly

Jeremy Stretch il y a 7 ans
Parent
commit
5ed797cfc9
1 fichiers modifiés avec 8 ajouts et 11 suppressions
  1. 8 11
      netbox/ipam/forms.py

+ 8 - 11
netbox/ipam/forms.py

@@ -520,17 +520,14 @@ class IPAddressForm(BootstrapMixin, TenancyForm, ReturnURLForm, CustomFieldForm)
             parent.save()
             parent.save()
 
 
         # Clear assignment as primary for device if set.
         # Clear assignment as primary for device if set.
-        else:
-            try:
-                if ipaddress.address.version == 4:
-                    device = ipaddress.primary_ip4_for
-                    device.primary_ip4 = None
-                else:
-                    device = ipaddress.primary_ip6_for
-                    device.primary_ip6 = None
-                device.save()
-            except Device.DoesNotExist:
-                pass
+        elif self.cleaned_data['interface']:
+            parent = self.cleaned_data['interface'].parent
+            if ipaddress.address.version == 4 and parent.primary_ip4 == self:
+                parent.primary_ip4 = None
+                parent.save()
+            elif ipaddress.address.version == 6 and parent.primary_ip6 == self:
+                parent.primary_ip6 = None
+                parent.save()
 
 
         return ipaddress
         return ipaddress