diff --git a/apps/stories/views.py b/apps/stories/views.py index c8ec4bf..358d906 100644 --- a/apps/stories/views.py +++ b/apps/stories/views.py @@ -204,8 +204,12 @@ class ShelfViewSet(viewsets.ViewSet): except StoryShelf.DoesNotExist: return error(code=ErrorCode.SHELF_NOT_FOUND, message='书架不存在') - Story.objects.filter(shelf=shelf).update(shelf=None) - shelf.delete() + with transaction.atomic(): + try: + Story.objects.filter(shelf=shelf).update(shelf=None) + except Exception: + Story.objects.filter(shelf=shelf).delete() + shelf.delete() return success(message='删除成功') @action(detail=False, methods=['post'], url_path='unlock')