def unlike_comment(self, pk): comment = CommentDetailAPIView().get_object(pk) like = comment.like - 1 comment_serializer = CommentSerializer(comment, data={'like': like}, partial=True) if comment_serializer.is_valid(): comment_serializer.save()
def put(self, request, pk): comment = self.get_object(pk) serializer = CommentSerializer(comment, data=request.data, partial=True) if serializer.is_valid(): serializer.save() return Response(response_data(True, serializer.data)) else: return Response(response_data(False, serializer.errors), status=status.HTTP_400_BAD_REQUEST)
def post(self, request, post_id): custom_request_data = copy.deepcopy(request.data) custom_request_data['post'] = post_id serializer = CommentSerializer(data=custom_request_data) if serializer.is_valid(): serializer.save() return Response(response_data(True, serializer.data)) else: return Response(response_data(False, serializer.errors), status=status.HTTP_400_BAD_REQUEST)
def comment_list(request, post_id): """ GET | post_id를 기준으로 comment list를 가져옵니다. POST | post_id를 기준으로 comment를 등록합니다. """ post = get_object_or_404(Post, pk=post_id) if request.method == "GET": # 댓글 보여주기 comments = get_list_or_404(Comment, post=post_id) serializer = CommentSerializer(comments, many=True) return Response(serializer.data, status=status.HTTP_200_OK) if request.method == "POST": # 댓글 등록 serializer = CommentSerializer(request.data) if serializer.is_valid( ): #is_valid()에서 비속어 처리도 진행 <- 참고로 comment에는 아직 안넣었는데 복붙할까요? 넵! serializer.save(post=post) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)