diff --git a/netbox/ipam/tables.py b/netbox/ipam/tables.py
index 49f87d7168..7e2ce017b4 100644
--- a/netbox/ipam/tables.py
+++ b/netbox/ipam/tables.py
@@ -76,6 +76,15 @@
{% endif %}
"""
+IPADDRESS_DEVICE = """
+{% if record.interface %}
+ {{ record.interface.device }}
+ ({{ record.interface.name }})
+{% else %}
+ —
+{% endif %}
+"""
+
VRF_LINK = """
{% if record.vrf %}
{{ record.vrf }}
@@ -281,12 +290,14 @@ class IPAddressTable(BaseTable):
status = tables.TemplateColumn(STATUS_LABEL)
vrf = tables.TemplateColumn(VRF_LINK, verbose_name='VRF')
tenant = tables.TemplateColumn(TENANT_LINK)
- device = tables.LinkColumn('dcim:device', args=[Accessor('interface.device.pk')], orderable=False)
- interface = tables.Column(orderable=False)
+ nat_inside = tables.LinkColumn(
+ 'ipam:ipaddress', args=[Accessor('nat_inside.pk')], orderable=False, verbose_name='NAT (Inside)'
+ )
+ device = tables.TemplateColumn(IPADDRESS_DEVICE, orderable=False)
class Meta(BaseTable.Meta):
model = IPAddress
- fields = ('pk', 'address', 'status', 'vrf', 'tenant', 'device', 'interface', 'description')
+ fields = ('pk', 'address', 'status', 'vrf', 'tenant', 'nat_inside', 'device', 'description')
row_attrs = {
'class': lambda record: 'success' if not isinstance(record, IPAddress) else '',
}
diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py
index 149db5f872..255e449a04 100644
--- a/netbox/ipam/views.py
+++ b/netbox/ipam/views.py
@@ -533,7 +533,7 @@ def prefix_ipaddresses(request, pk):
#
class IPAddressListView(ObjectListView):
- queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant', 'interface__device')
+ queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant', 'interface__device', 'nat_inside')
filter = filters.IPAddressFilter
filter_form = forms.IPAddressFilterForm
table = tables.IPAddressTable