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