diff --git a/docs/release-notes/version-2.9.md b/docs/release-notes/version-2.9.md
index aec9817f2..17b2ddffe 100644
--- a/docs/release-notes/version-2.9.md
+++ b/docs/release-notes/version-2.9.md
@@ -6,6 +6,7 @@
* [#5063](https://github.com/netbox-community/netbox/issues/5063) - Fix "add device" link in rack elevations for opposite side of half-depth devices
* [#5074](https://github.com/netbox-community/netbox/issues/5074) - Fix inclusion of VC member interfaces when viewing VC master
+* [#5078](https://github.com/netbox-community/netbox/issues/5078) - Fix assignment of existing IP addresses to interfaces via web UI
* [#5081](https://github.com/netbox-community/netbox/issues/5081) - Fix exception during webhook processing with custom select field
---
diff --git a/netbox/ipam/tables.py b/netbox/ipam/tables.py
index 7b4aa44ba..a16dcf333 100644
--- a/netbox/ipam/tables.py
+++ b/netbox/ipam/tables.py
@@ -67,11 +67,7 @@ IPADDRESS_LINK = """
"""
IPADDRESS_ASSIGN_LINK = """
-{% if request.GET %}
- {{ record }}
-{% else %}
- {{ record }}
-{% endif %}
+{{ record }}
"""
VRF_LINK = """
diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py
index 68f7da8ad..1f0e2607e 100644
--- a/netbox/ipam/views.py
+++ b/netbox/ipam/views.py
@@ -582,7 +582,7 @@ class IPAddressAssignView(ObjectView):
def dispatch(self, request, *args, **kwargs):
# Redirect user if an interface has not been provided
- if 'interface' not in request.GET:
+ if 'interface' not in request.GET and 'vminterface' not in request.GET:
return redirect('ipam:ipaddress_add')
return super().dispatch(request, *args, **kwargs)
@@ -609,7 +609,7 @@ class IPAddressAssignView(ObjectView):
return render(request, 'ipam/ipaddress_assign.html', {
'form': form,
'table': table,
- 'return_url': request.GET.get('return_url', ''),
+ 'return_url': request.GET.get('return_url'),
})