오늘은 유화 프로젝트 첫날이이다.
어제 상의한 내용을 바탕으로 각자 맡은 일 을 진행 하였다.
나는 백엔드 중에서는 댓글-작성,수정,삭제 담당이였다.
그리고 구현 완료 후 프론트엔드 를 먼저 진행하는 역활 이 였다.
그래서 백엔드 부분 에 서는 많은 부분 을 맡지는 않았다.
이번 프로젝트 에서 구현 하는 백엔드 기능 은 다행이도 해본적 있는 기능이 많아
어렵지는 않았지만, 프론트엔드 쪽은 할일 많아 그쪽 을 비중있게 진행하는 중이다.
urls.py
path('<int:feed_id>/comment/', views.FeedCommentView.as_view(), name = 'feed_comment_view'), # 댓글 작성
path('<int:feed_id>/comment/<int:comment_id>/', views.FeedCommentDetailView.as_view(), name = 'feed_comment_detail_view'), # 댓글 수정, 삭제
views.py
class FeedCommentView(APIView): # 댓글 등록 View (성창남)
permission_classes = [permissions.IsAuthenticated]
authentication_classes = [JWTAuthentication]
def post(self, request, feed_id): # 댓글 등록
serializer = FeedCommentSerializer(data=request.data)
if serializer.is_valid():
serializer.save(user=request.user, feed_id=feed_id)
return Response({"message":"댓글 등록했습니다!"}, status=status.HTTP_200_OK)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class FeedCommentDetailView(APIView): #댓글(수정,삭제) View (성창남)
permission_classes = [permissions.IsAuthenticated]
authentication_classes = [JWTAuthentication]
def put(self, request, feed_id, comment_id): # 댓글 수정
comment = get_object_or_404(Comment, id=comment_id)
if request.user == comment.user:
serializer = FeedCommentSerializer(comment, data=request.data)
if serializer.is_valid():
serializer.save()
return Response({"message":"댓글 수정했습니다!"}, status=status.HTTP_200_OK)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
else:
return Response({"message":"권한이 없습니다!"}, status=status.HTTP_403_FORBIDDEN)
def delete(self, request, feed_id, comment_id): # 댓글 삭제
comment = get_object_or_404(Comment, id= comment_id)
if request.user == comment.user:
comment.delete()
return Response({"message":"댓글 삭제했습니다!"}, status=status.HTTP_204_NO_CONTENT)
else:
return Response({"message":"권한이 없습니다!"}, status=status.HTTP_403_FORBIDDEN)
serializers.py
class FeedCommentSerializer(serializers.ModelSerializer): # 댓글 작성 serializer
user = serializers.SerializerMethodField()
# tags = TagListSerializerField()
def get_user(self, obj):
return obj.user.email
class Meta:
model = Comment
fields='__all__'
'TIL(Daily) > ETC' 카테고리의 다른 글
Fri/25/Nov/22- 유화 프로젝트 - (0) | 2022.11.28 |
---|---|
Thu/24/Nov/22 유화 프로젝트-3 (0) | 2022.11.25 |
Tue/22/Nov/22 - 유화 프로젝트-1 (0) | 2022.11.23 |
Mon/21/Nov/22 프젝트준비 (0) | 2022.11.21 |
Fir/18/Nov/22-JavaScript(Toggle),Docker (TimeAttack) (0) | 2022.11.20 |
댓글