Sfoglia il codice sorgente

Fixes #17124: BaseTable should follow reverse one-to-one relationships when prefetching related objects

Jeremy Stretch 1 anno fa
parent
commit
9c7002f691
1 ha cambiato i file con 2 aggiunte e 1 eliminazioni
  1. 2 1
      netbox/netbox/tables/tables.py

+ 2 - 1
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.contrib.contenttypes.fields import GenericForeignKey
 from django.core.exceptions import FieldDoesNotExist
 from django.core.exceptions import FieldDoesNotExist
 from django.db.models.fields.related import RelatedField
 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 import reverse
 from django.urls.exceptions import NoReverseMatch
 from django.urls.exceptions import NoReverseMatch
 from django.utils.safestring import mark_safe
 from django.utils.safestring import mark_safe
@@ -102,7 +103,7 @@ class BaseTable(tables.Table):
                             field = model._meta.get_field(field_name)
                             field = model._meta.get_field(field_name)
                         except FieldDoesNotExist:
                         except FieldDoesNotExist:
                             break
                             break
-                        if isinstance(field, RelatedField):
+                        if isinstance(field, (RelatedField, ManyToOneRel)):
                             # Follow ForeignKeys to the related model
                             # Follow ForeignKeys to the related model
                             prefetch_path.append(field_name)
                             prefetch_path.append(field_name)
                             model = field.remote_field.model
                             model = field.remote_field.model