From 7794c6cfcb236b57ec46207a86946434958e5dcf Mon Sep 17 00:00:00 2001 From: Andrey Tikhonov <17@itishka.org> Date: Mon, 24 Feb 2025 15:28:45 +0100 Subject: [PATCH] Fix link peers --- netbox/dcim/api/views.py | 5 ++--- netbox/dcim/models/device_components.py | 7 +++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/netbox/dcim/api/views.py b/netbox/dcim/api/views.py index 748367eda..cfdd5d209 100644 --- a/netbox/dcim/api/views.py +++ b/netbox/dcim/api/views.py @@ -439,15 +439,14 @@ class InterfaceViewSet(PathEndpointMixin, NetBoxModelViewSet): GenericPrefetch( "cable__terminations__termination", [ - Interface.objects.prefetch_related("device"), + Interface.objects.select_related("device", "cable"), ], ), Prefetch( "_path", CablePath.objects.prefetch_related( GenericPrefetch("path_objects", [ - Interface.objects.prefetch_related("device"), - Cable.objects.prefetch_related("terminations"), + Interface.objects.select_related("device"), ]), ) ), diff --git a/netbox/dcim/models/device_components.py b/netbox/dcim/models/device_components.py index 9438b741f..0ae00f5c4 100644 --- a/netbox/dcim/models/device_components.py +++ b/netbox/dcim/models/device_components.py @@ -189,8 +189,11 @@ class CabledObjectModel(models.Model): @cached_property def link_peers(self): if self.cable: - peers = self.cable.terminations.exclude(cable_end=self.cable_end).prefetch_related('termination') - return [peer.termination for peer in peers] + return [ + peer.termination + for peer in self.cable.terminations.all() + if peer.cable_end != self.cable_end + ] return [] @property