From 9c7002f691a67dad64d12f289a6652a2d66bb180 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Sat, 10 Aug 2024 11:58:14 -0400 Subject: [PATCH] Fixes #17124: BaseTable should follow reverse one-to-one relationships when prefetching related objects --- netbox/netbox/tables/tables.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/netbox/netbox/tables/tables.py b/netbox/netbox/tables/tables.py index b191896fa..f95263f6c 100644 --- a/netbox/netbox/tables/tables.py +++ b/netbox/netbox/tables/tables.py @@ -6,6 +6,7 @@ from django.contrib.auth.models import AnonymousUser from django.contrib.contenttypes.fields import GenericForeignKey from django.core.exceptions import FieldDoesNotExist from django.db.models.fields.related import RelatedField +from django.db.models.fields.reverse_related import ManyToOneRel from django.urls import reverse from django.urls.exceptions import NoReverseMatch from django.utils.safestring import mark_safe @@ -102,7 +103,7 @@ class BaseTable(tables.Table): field = model._meta.get_field(field_name) except FieldDoesNotExist: break - if isinstance(field, RelatedField): + if isinstance(field, (RelatedField, ManyToOneRel)): # Follow ForeignKeys to the related model prefetch_path.append(field_name) model = field.remote_field.model