본문 바로가기

분류 전체보기

(110)
[TIL] trouble shooting - like count 각 댓글에 대해 좋아요를 하고 좋아요가 많은 순서대로 출력하기 위한 코드를 작성하였다좋아요한 유저를 like_users로 User 모델과 manytomany field로 이어준 후에 출력할 수 있도록 코드를 작성하였다 models.pyclass Comment(models.Model): post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name="comments") author = models.ForeignKey(User, on_delete=models.CASCADE) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) ..
[TIL] trouble shooting - serializer.data 1. seriaizers.py의 시리얼라이저 사용에서의 오류  문제 회원가입을 작성 중 accounts/views.pyclass UserCreateAPIView(APIView): def post(self, request): is_valid, err_msg = validate_signup(request.data) if not is_valid: return Response({"error": err_msg}, status=status.HTTP_400_BAD_REQUEST) user = User.objects.create_user(**request.data) print(user) serializer = UserSerializ..
[TIL] project setting 본격적으로 프로젝트의 기능을 구현하기에 앞서 팀원들과 회의를 진행하였다.  1. api 명세서api 명세서를 미리 작성한 후에 해당 기능에 따른 api에 대해 논의하였다  2. ERD 작성모델에 대해 어떤 필드가 필요한지모델간에 어떤 관계를 갖는지에 대해 논의하였다    3. wireframe프론트엔드 구현은 정해지지 않았지만 기능적인 점검을 위해 와이어프레임을 작성하였다   4. SA 문서 작성 개발 일정과 기능 상세 및 요구사항 등에 대한 내용을 논의하였다    5. process flow 개발하는 동안 어떠한 흐름을 가지고 개발할 지에 대한 프로세스 플로우를 함께 작성하였다   6. 기타깃 브랜치나 커밋 메세지에 대한 논의, 휴일의 일정에 대한 논의도 함께하고스켈레톤 코드를 함께 작성하면서 회의를 ..
[TIL] spartamarket-DRF 트러블 슈팅2 3. 패스워드 변경 serializer에서 유효성 검증을 하는 방법은 2가지가 있다 1. object-level validation여러 개의 필드에 대해 유효성을 검사해야 하는 경우 validate() 함수를 오버라이딩 하여 사용할 수 있다  2. field-level validationvalidate_ 함수를 사용하여 개별 필드에 대한 유효성 검사를 할 수 있다. 이 경우에 필드 네임이 시리얼라이저에 파라미터로 선언되어있지만 required = False인 경우에는 유효성 검사가 동작하지 않을 수 있다. 패스워드 변경 시에 3개의 변수를 입력받는데,새로운 패스워드, 패스워드 확인, 기존 패스워드를 입력받는다 이때1. 새로운 패스워드와 패스워드 확인이 일치 할 것2. 새로운 패스워드가 기존 패스워드와 다..
[TIL] spartamarket-DRF 트러블 슈팅 1. Method \POST\ not allowed DRF중 TokenBlacklistView를 사용해 logout을 하려고 했을 때 postman에서 아래와 같은 오류가 발생하였다.   분명 post 메소드로 잘 전달했고 만들어져있는 뷰를 가져다 썼기 때문에 뷰나 시리얼라이저에는 이상이 있을 수가 없었다.  처음엔 아래와 같이 urlpatterns가 작성되어있었다urlpatterns = [ ... path("/", views.Profile.as_view(), name="profile"), path("logout/", TokenBlacklistView.as_view(), name="token_blacklist"), ...] 이를 다음과 같이 수정해서 작동시키니 잘 작동되었다 urlp..
[TIL] 권한 있는 사용자 상품 수정이나 삭제를 할 때 권한이 있는 사용자(게시글 작성자)만 할 수 있도록 해야한다그래서 뷰에서 검증하는 코드를 넣어주었다  class ProductDetailAPIView(APIView): permission_classes = [ IsAuthenticatedOrReadOnly, # GET은 인증이 필요없고 POST, PUT, DELETE 요청은 인증이 필요함 ] # 상품 수정 def put(self, request, productID): product = get_object_or_404(Product, id=productID) writer = product.author if request.user == writer: ..
[TIL] TokenBlacklistView - Method \POST\ not allowed error로그아웃 기능 구현을 위해 TokenBlacklistView를 사용했는데 Method \POST\ not allowed라는 오류 발생    처음엔 urls.py에서 다음과 같이 url을 설정해주었는데from rest_framework_simplejwt.views import TokenBlacklistViewurlpatterns = [ ... path('logout/', TokenBlacklistView.as_view(), name='token_blacklist'), ...]   변경후from rest_framework_simplejwt.views import TokenBlacklistViewurlpatterns = [ ... path('auth/logout/', TokenB..
[TIL] 장고 기초 이해도 오답노트 보호되어 있는 글입니다.