mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-26 17:26:10 -06:00
Clear previous primary ip assignment on edit
This commit is contained in:
parent
ab303db3dd
commit
e57391b6f2
@ -464,6 +464,7 @@ class IPAddressForm(TenancyForm, NetBoxModelForm):
|
|||||||
selected_objects[1]: "An IP address can only be assigned to a single object."
|
selected_objects[1]: "An IP address can only be assigned to a single object."
|
||||||
})
|
})
|
||||||
elif selected_objects:
|
elif selected_objects:
|
||||||
|
self._old_parent = self.instance.assigned_object.parent_object
|
||||||
self.instance.assigned_object = self.cleaned_data[selected_objects[0]]
|
self.instance.assigned_object = self.cleaned_data[selected_objects[0]]
|
||||||
else:
|
else:
|
||||||
self.instance.assigned_object = None
|
self.instance.assigned_object = None
|
||||||
@ -483,10 +484,19 @@ class IPAddressForm(TenancyForm, NetBoxModelForm):
|
|||||||
if type(interface) in (Interface, VMInterface):
|
if type(interface) in (Interface, VMInterface):
|
||||||
parent = interface.parent_object
|
parent = interface.parent_object
|
||||||
if self.cleaned_data['primary_for_parent']:
|
if self.cleaned_data['primary_for_parent']:
|
||||||
|
# Clear any existing primary IP assignment
|
||||||
|
if old_parent := getattr(self, '_old_parent', None):
|
||||||
|
if ipaddress.address.version == 4:
|
||||||
|
old_parent.primary_ip4 = None
|
||||||
|
else:
|
||||||
|
old_parent.primary_ip6 = None
|
||||||
|
old_parent.save()
|
||||||
|
|
||||||
if ipaddress.address.version == 4:
|
if ipaddress.address.version == 4:
|
||||||
parent.primary_ip4 = ipaddress
|
parent.primary_ip4 = ipaddress
|
||||||
else:
|
else:
|
||||||
parent.primary_ip6 = ipaddress
|
parent.primary_ip6 = ipaddress
|
||||||
|
|
||||||
parent.save()
|
parent.save()
|
||||||
elif ipaddress.address.version == 4 and parent.primary_ip4 == ipaddress:
|
elif ipaddress.address.version == 4 and parent.primary_ip4 == ipaddress:
|
||||||
parent.primary_ip4 = None
|
parent.primary_ip4 = None
|
||||||
|
Loading…
Reference in New Issue
Block a user