From 1ef24aa51bdbc15f4562d43c53cb8824b9041bfb Mon Sep 17 00:00:00 2001 From: Scanf-s Date: Sat, 8 Feb 2025 15:11:03 +0900 Subject: [PATCH 1/3] =?UTF-8?q?model=20=EB=AC=B8=EC=A0=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- market/models.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/market/models.py b/market/models.py index f1b285a..527cbc1 100644 --- a/market/models.py +++ b/market/models.py @@ -1,9 +1,12 @@ import uuid +from django.conf import settings +from django.contrib.auth.models import User from django.db import models from core.models import TimeStampedModel from market.managers import MarketManager, ServiceManager, ServiceMaterialManager +from users.models.reformer import Reformer def get_market_thumbnail_upload_path(instance, filename): From ef74c91e70e16c65021bac47237a38351a8712ba Mon Sep 17 00:00:00 2001 From: Scanf-s Date: Tue, 11 Feb 2025 20:22:23 +0900 Subject: [PATCH 2/3] fix option image upload view --- market/views/image_upload_view.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/views/image_upload_view.py b/market/views/image_upload_view.py index b95d2dd..06971f0 100644 --- a/market/views/image_upload_view.py +++ b/market/views/image_upload_view.py @@ -94,7 +94,7 @@ def post(self, request, **kwargs): raise ValidationError("There are no image files to upload") self.service.upload_service_images( - entity=market_service_option, image_files=image_files + entity=market_service_option, image_file=image_files ) return Response( From a803848d627e9556f64a0b29f69c63e8da5a19ac Mon Sep 17 00:00:00 2001 From: Scanf-s Date: Wed, 12 Feb 2025 01:28:17 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EC=84=9C=EB=B9=84=EC=8A=A4=20=EC=98=B5?= =?UTF-8?q?=EC=85=98=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EB=A6=AC=ED=8C=A9?= =?UTF-8?q?=ED=86=A0=EB=A7=81=20=EB=B0=8F=20=EB=B2=84=EA=B7=B8=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- market/services.py | 28 ++++++++++++++++++++++++---- market/views/image_upload_view.py | 4 ++-- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/market/services.py b/market/services.py index 6b15668..5705f2b 100644 --- a/market/services.py +++ b/market/services.py @@ -79,10 +79,30 @@ def upload_service_images(entity: Any, image_file) -> None: # 엔티티 타입 별 쿼리 생성 if isinstance(entity, Service): ServiceImage.objects.create(market_service=entity, image=image_file) - elif isinstance(entity, ServiceOption): - ServiceOptionImage.objects.create( - service_option=entity, image=image_file - ) + + except ValidationError as e: + raise ValidationError(f"Validation Error: {str(e)}") + except Exception as e: + raise e + + @staticmethod + @transaction.atomic + def upload_service_option_images(entity: Any, image_files) -> None: + """ + 서비스 소개 이미지를 S3에 업로드 및 데이터베이스에 저장하는 함수 + """ + try: + # 파일 유효성 검증 + validate_image_files(image_files) + + # 엔티티 타입 별 쿼리 생성 + if isinstance(entity, ServiceOption): + bulk_images: List[ServiceOptionImage] = [] + for image_file in image_files: + bulk_images.append( + ServiceOptionImage(service_option=entity, image=image_file) + ) + ServiceOptionImage.objects.bulk_create(bulk_images) except ValidationError as e: raise ValidationError(f"Validation Error: {str(e)}") diff --git a/market/views/image_upload_view.py b/market/views/image_upload_view.py index 06971f0..ad9a95a 100644 --- a/market/views/image_upload_view.py +++ b/market/views/image_upload_view.py @@ -93,8 +93,8 @@ def post(self, request, **kwargs): if not image_files: raise ValidationError("There are no image files to upload") - self.service.upload_service_images( - entity=market_service_option, image_file=image_files + self.service.upload_service_option_images( + entity=market_service_option, image_files=image_files ) return Response(