Explorar o código

Merge pull request #8793 from seros1521/fix_8715

Fixes #8715: eliminates duplicates when used in many-to-many field constraints
Jeremy Stretch %!s(int64=3) %!d(string=hai) anos
pai
achega
bffe63a233
Modificáronse 1 ficheiros con 6 adicións e 0 borrados
  1. 6 0
      netbox/utilities/querysets.py

+ 6 - 0
netbox/utilities/querysets.py

@@ -39,6 +39,12 @@ class RestrictedQuerySet(QuerySet):
                     # Any permission with null constraints grants access to _all_ instances
                     attrs = Q()
                     break
+            else:
+                # for else, when no break
+                # avoid duplicates when JOIN on many-to-many fields without using DISTINCT.
+                # DISTINCT acts globally on the entire request, which may not be desirable.
+                allowed_objects = self.model.objects.filter(attrs)
+                attrs = Q(pk__in=allowed_objects)
             qs = self.filter(attrs)
 
         return qs