From e5bfa29c7be9a23c941085d706ab1ee61c3f197d Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Tue, 19 Sep 2023 14:53:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=9B=E5=BB=BA=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98=20(#1160?= =?UTF-8?q?6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: feng <1304903146@qq.com> --- apps/accounts/serializers/account/account.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/accounts/serializers/account/account.py b/apps/accounts/serializers/account/account.py index 9d817e5aa..fe4b2847b 100644 --- a/apps/accounts/serializers/account/account.py +++ b/apps/accounts/serializers/account/account.py @@ -2,6 +2,7 @@ import uuid from copy import deepcopy from django.db import IntegrityError +from django.db import transaction from django.db.models import Q from django.utils.translation import gettext_lazy as _ from rest_framework import serializers @@ -117,10 +118,13 @@ class AccountCreateUpdateSerializerMixin(serializers.Serializer): asset = get_object_or_404(Asset, pk=asset_id) initial_data['su_from'] = template.get_su_from_account(asset) - @staticmethod - def push_account_if_need(instance, push_now, params, stat): + def push_account_if_need(self, instance, push_now, params, stat): if not push_now or stat not in ['created', 'updated']: return + transaction.on_commit(lambda: self.start_push(instance, params)) + + @staticmethod + def start_push(instance, params): push_accounts_to_assets_task.delay([str(instance.id)], params) def get_validators(self):