use explicit in lookup (#25557)
This commit is contained in:
parent
38e2d61e07
commit
135b81c6fc
|
@ -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)
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
Loading…
Reference in New Issue