use explicit in lookup (#25557)

This commit is contained in:
Emmanuel Cazenave 2018-08-01 15:37:28 +02:00
parent 38e2d61e07
commit 135b81c6fc
2 changed files with 4 additions and 4 deletions

View File

@ -448,7 +448,7 @@ class OUSearchForm(FormWithRequest):
# get possible OUs from this list
related_query_name = self.queryset.model._meta.get_field('ou').related_query_name()
objects_ou_qs = get_ou_model().objects.filter(
**{related_query_name: self.queryset}).distinct()
**{"%s__in" % related_query_name: self.queryset}).distinct()
# to combine queryset with distinct, each queryset must have the distinct flag
self.ou_qs = (self.ou_qs.distinct() | objects_ou_qs)

View File

@ -106,7 +106,7 @@ class RoleQuerySet(query.QuerySet):
return self.filter(members=user).parents().distinct()
def parents(self, include_self=True, annotate=False):
qs = self.model.objects.filter(child_relation__child=self)
qs = self.model.objects.filter(child_relation__child__in=self)
if include_self:
qs = self | qs
qs = qs.distinct()
@ -115,7 +115,7 @@ class RoleQuerySet(query.QuerySet):
return qs
def children(self, include_self=True, annotate=False):
qs = self.model.objects.filter(parent_relation__parent=self)
qs = self.model.objects.filter(parent_relation__parent__in=self)
if include_self:
qs = self | qs
qs = qs.distinct()
@ -126,7 +126,7 @@ class RoleQuerySet(query.QuerySet):
def all_members(self):
User = get_user_model()
prefetch = Prefetch('roles', queryset=self, to_attr='direct')
return (User.objects.filter(Q(roles=self) | Q(roles__parent_relation__parent=self))
return (User.objects.filter(Q(roles__in=self) | Q(roles__parent_relation__parent__in=self))
.distinct()
.prefetch_related(prefetch))