perf(User): 用户列表在大规模数据情况下慢

This commit is contained in:
xinwen
2020-11-26 10:34:27 +08:00
committed by Jiangjie.Bai
parent f26b7a470a
commit df2f1b3e6e
2 changed files with 20 additions and 15 deletions

View File

@@ -170,22 +170,18 @@ class RoleMixin:
from orgs.models import ROLE as ORG_ROLE
if not current_org.is_real():
# 不是真实的组织,取 User 本身的角色
if self.is_superuser:
return [ORG_ROLE.ADMIN]
else:
return [ORG_ROLE.USER]
if hasattr(self, 'gc_m2m_org_members__role'):
names = self.gc_m2m_org_members__role
if isinstance(names, str):
roles = set(self.gc_m2m_org_members__role.split(','))
else:
roles = set()
else:
roles = set(self.m2m_org_members.filter(
org_id=current_org.id
).values_list('role', flat=True))
roles = list(roles)
# 是真实组织,取 OrganizationMember 中的角色
roles = [
org_member.role
for org_member in self.m2m_org_members.all()
if org_member.org_id == current_org.id
]
roles.sort()
return roles