본문 바로가기

ERROR16

암호화 데이터 이중 암호화 문제 기존 배송정보를 사용하거나, 새로운 배송정보를 입력받아서 저장하는 중 발생한 문제 def create(self, request, *args, **kwargs): # 기존 배송정보 사용 시 if delivery_id := self.request.data.get("delivery_id"): deli = get_object_or_404(Delivery, pk=delivery_id) data = { "user": request.user, "address": deli.address, "detail_address": deli.detail_address, "recipient": deli.recipient, "postal_code": deli.postal_code, } serializer = self.get_seria.. 2023. 7. 2.
암호화 알고리즘 사용 시, max_length 설정 에러 주문 과정에서 배송정보 입력, 기존 배송정보 사용시 발생한 문제 def create(self, request, *args, **kwargs): if delivery_id := self.request.data.get("delivery_id"): deli = get_object_or_404(Delivery, pk=delivery_id) data = { "user": request.user, "address": deli.address, "detail_address": deli.detail_address, "recipient": deli.recipient, "postal_code": deli.postal_code, } elif request.data.get("postal_code") and request.dat.. 2023. 7. 2.
GenericView perform_create에서 에러 발생시키기 리뷰를 이미 작성한 유저이거나, 상품을 구매하지 않은 유저는 리뷰를 작성할 수 없도록 하는 코드 작성 중, def perform_create(self, serializer): product = get_object_or_404(Product, id=self.kwargs.get("product_id")) user = self.request.user has_bought = OrderItem.objects.filter(bill__user=user, product_id=product.id).exists() has_reviewed = Review.objects.filter(user=user, product=product).exists() print(has_reviewed, has_bought) if has_revi.. 2023. 6. 26.
퍼미션 논리연산시, Error raise class IsSeller(BasePermission): message = "No Seller object related to User." def has_permission(self, request, view): if hasattr(request.user, "user_seller"): return True else: raise PermissionDenied(detail="No Seller object related to User.") return hasattr(request.user, "user_seller") 커스텀 퍼미션을 만들어주고, permission_classes = [IsSeller | IsReadOnly] 퍼미션 클래스에서 논리 연산자 실행을 했는데, else문에서 PermissionDeni.. 2023. 6. 26.
테스트 코드 작성 중 .save() 누락 1️⃣ 문제 테스트 코드 작성 중 cls.user = User.objects.create_user( "testuser@naver.com", "test_user", "password" ) cls.user_data = {"email": "testuser@naver.com", "password": "password"} cls.user.is_active = True user의 is_active를 True로 해주었으나 print를 찍어줬는데, user.is_active=true로 나오지만, login시에는 휴면계정이라고 나옴. print(self.user.is_active) # True self.user_access_token = self.client.post(reverse("login"), self.user_d.. 2023. 6. 26.
WIL 20230619 ~ 20230625 - 최종 프로젝트 주차 3 1️⃣ 이번 주 TIL 20230619 TIL - 특정 브랜치 클론하기 20230619 TIL - 특정 브랜치 클론하기 git clone -b {branch_name} --single-branch {repo url} git clone: Git 저장소를 복제하는 명령어, 명령어를 사용하면 원격 저장소의 모든 파일, 커밋 히스토리, 브랜치 등의 정보가 로컬 시스템으로 복사한다. -b { codemte.tistory.com 20230620 TIL - permission_classes = [A, B]와 [A & B]의 차이 20230620 TIL - permission_classes = [A, B]와 [A & B]의 차이 1️⃣ [DRF] permission_classes = [A, B]와 [A & B]의 차이.. 2023. 6. 26.
.get과 .filter의 반환값 차이에 따른 에러 CartView의 Post요청 중 이미 존재하는 상품이면 상품 개수만큼 추가로 더해주는 기능을 만들기 위해 cart = CartItem.objects.filter(product=request.data["product"]) 그런데 filter를 사용하면 값이 1개여도 queryset을 반환하여 코드가 생각대로 작동하지 않음. 따라서 객체를 반환하도록 하기 위해 filter를 get으로 변경. try: cart = CartItem.objects.get(product=request.data["product"]) except CartItem.DoesNotExist: ... DoesNotExist 에러 예외처리를 위해 try - except 구문을 사용 2023. 6. 23.
[Gunicorn] Poetry환경 Failed at step EXEC spawning / No such file or directory 1️⃣ 문제 Failed at step EXEC spawning /home/ubuntu/project/venv/bin/gunicorn: No such file or directory Poetry로 가상환경 사용 시, 일반적으로 사용하는 경로를 지정했을 때, 해당 오류가 발생할 수 있다. 이유는 Poetry의 가상환경은 .cache폴더에 생성되기 때문. 2️⃣ 해결 방법 1 Poetry의 설정에 venv의 경로를 바꿔주는 명령어가 있다. poetry config virtualenvs.in-project true poetry config virtualenvs.path "./.venv" 해당 명령어로 설정 변경 후 poetry shell 이후 정상적으로 프로젝트 폴더 내부로 경로가 변경된것을 확인할 수 있다... 2023. 6. 1.
[MySQL] EC2 Ubuntu환경 python 3.11 사용 시 ChefBuildError 1️⃣ 문제 poetry install 중 mysqlclient 설치하는 과정에서 에러가 발생했다. 빌드에 필요한 요소들이 없다는 에러 ChefBuildError Backend subprocess exited when trying to invoke get_requires_for_build_wheel /bin/sh: 1: mysql_config: not found /bin/sh: 1: mariadb_config: not found /bin/sh: 1: mysql_config: not found mysql_config --version mariadb_config --version mysql_config --libs 2️⃣ 시도 검색해보니 libmysqlclient-dev와 python3-dev가 필요하다고 .. 2023. 6. 1.