diff --git a/apps/assets/models/authbook.py b/apps/assets/models/authbook.py index 87e96c3fe..7d0a3f472 100644 --- a/apps/assets/models/authbook.py +++ b/apps/assets/models/authbook.py @@ -59,10 +59,9 @@ class AuthBook(BaseUser): username = kwargs['username'] asset = kwargs['asset'] with transaction.atomic(): - # 使用select_for_update限制并发创建相同的username、asset数据 - cls.objects.select_for_update().filter( - username=username, asset=asset, is_latest=True - ).update(is_latest=False) + # 使用select_for_update限制并发创建相同的username、asset条目 + instances = cls.objects.select_for_update().filter(username=username, asset=asset) + instances.filter(is_latest=True).update(is_latest=False) max_version = cls.get_max_version(username, asset) kwargs.update({ 'version': max_version + 1,