diff --git a/netbox/ipam/forms.py b/netbox/ipam/forms.py index afd533906..b83540c11 100644 --- a/netbox/ipam/forms.py +++ b/netbox/ipam/forms.py @@ -520,17 +520,14 @@ class IPAddressForm(BootstrapMixin, TenancyForm, ReturnURLForm, CustomFieldForm) parent.save() # 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