瀏覽代碼

Merge pull request #8793 from seros1521/fix_8715

Fixes #8715: eliminates duplicates when used in many-to-many field constraints
Jeremy Stretch 4 年之前
父節點
當前提交
bffe63a233
共有 1 個文件被更改,包括 6 次插入0 次删除
  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