From 8c51ff22fec4c4dc7490645408e5a5a1fa85ba21 Mon Sep 17 00:00:00 2001 From: xinwen Date: Thu, 15 Oct 2020 11:24:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(orgs):=20=E4=BF=AE=E5=A4=8D=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/orgs/models.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/apps/orgs/models.py b/apps/orgs/models.py index b244ddec4..87d94d98d 100644 --- a/apps/orgs/models.py +++ b/apps/orgs/models.py @@ -230,8 +230,14 @@ 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) if hasattr(user, 'pk')] +def _users2pks_if_need(users, admins, auditors): + pks = [] + for user in chain(users, admins, auditors): + if hasattr(user, 'pk'): + pks.append(user.pk) + else: + pks.append(user) + return pks class UserRoleMapper(dict): @@ -271,7 +277,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=_users2pks(users, admins, auditors), using=self.db) + model=User, pk_set=_users2pks_if_need(users, admins, auditors), using=self.db) send(action="pre_remove") self.filter(org_id=org.id).filter( @@ -302,7 +308,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=_users2pks(users, admins, auditors), using=self.db) + model=User, pk_set=_users2pks_if_need(users, admins, auditors), using=self.db) send(action='pre_add') self.bulk_create(oms_add)