mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-06 09:51:00 +00:00
[Update] 优化sql, or方式改为union (#3682)
* [Update] 优化sql, or方式改为union * [Update] 优化union操作,直接union后,queryset 的一些参数不能使用,如annoate, 如filter assets__isnull=True
This commit is contained in:
@@ -8,7 +8,7 @@ from django.db.models import Q
|
||||
from django.utils import timezone
|
||||
from orgs.mixins.models import OrgModelMixin
|
||||
|
||||
from common.utils import date_expired_default, set_or_append_attr_bulk
|
||||
from common.utils import date_expired_default, union_queryset
|
||||
from orgs.mixins.models import OrgManager
|
||||
|
||||
|
||||
@@ -83,7 +83,8 @@ class BasePermission(OrgModelMixin):
|
||||
from users.models import User
|
||||
users_id = self.users.all().values_list('id', flat=True)
|
||||
groups_id = self.user_groups.all().values_list('id', flat=True)
|
||||
users = User.objects.filter(
|
||||
Q(id__in=users_id) | Q(groups__id__in=groups_id)
|
||||
).distinct()
|
||||
users = User.objects.filter(id__in=users_id)
|
||||
if groups_id:
|
||||
groups_users = User.objects.filter(groups__id__in=groups_id)
|
||||
users = union_queryset(users, groups_users)
|
||||
return users
|
||||
|
Reference in New Issue
Block a user