From 493e61aa34e70f9ef021bc18cb7285cdc36a5d02 Mon Sep 17 00:00:00 2001 From: xinwen Date: Wed, 30 Sep 2020 11:28:23 +0800 Subject: [PATCH] =?UTF-8?q?fix(orgs):=20=E7=94=A8=E6=88=B7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=BB=84=E7=BB=87=E8=A7=92=E8=89=B2=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/orgs/models.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/orgs/models.py b/apps/orgs/models.py index f76d88e2a..0b732506b 100644 --- a/apps/orgs/models.py +++ b/apps/orgs/models.py @@ -1,5 +1,6 @@ import uuid from functools import partial +from itertools import chain from django.db import models from django.db.models import signals @@ -229,6 +230,10 @@ def _none2list(*args): return ([] if v is None else v for v in args) +def _users2pks(users, admins, auditors): + return [user.pk for user in chain(users, admins, auditors)] + + class UserRoleMapper(dict): def __init__(self, container=set): super().__init__() @@ -266,7 +271,7 @@ class OrgMemeberManager(models.Manager): users, admins, auditors = _none2list(users, admins, auditors) send = partial(signals.m2m_changed.send, sender=self.model, instance=org, reverse=False, - model=User, pk_set=[*users, *admins, *auditors], using=self.db) + model=User, pk_set=_users2pks(users, admins, auditors), using=self.db) send(action="pre_remove") self.filter(org_id=org.id).filter( @@ -297,7 +302,7 @@ class OrgMemeberManager(models.Manager): oms_add.append(self.model(org_id=org.id, user_id=user, role=role)) send = partial(signals.m2m_changed.send, sender=self.model, instance=org, reverse=False, - model=User, pk_set=[*users, *admins, *auditors], using=self.db) + model=User, pk_set=_users2pks(users, admins, auditors), using=self.db) send(action='pre_add') self.bulk_create(oms_add)