이거말고는 에러가 전혀 뜨지않아서 어디서 에러가 나는지 찾기가 어려웠다 파라미터로 post_id를 사용하지도 않아서 다른데서 에러가 뜬다고 생각했다.
우선 post_id를 파라미터로 사용하는 다른 메소드를 찾아보다가 urls에서
post_id를 받아는 오는걸 알게되었고 이걸 사용하지 않더라도 파라미터에 입력해줘야 하나? 라고 생각하면서 코드를 수정했다.
class CommentDetailAPIView(APIView):
def delete(self, request, post_id, comment_id):
comment=get_object_or_404(PostComment, id=comment_id)
print(comment)
if request.user == comment.user:
comment.delete() # 역참조가 아니면 거의 변수
else:
return Response("권한이 없어요", status=status.HTTP_400_BAD_REQUEST)
def put(self, request, post_id, comment_id):
comment=get_object_or_404(PostComment, id=comment_id)
print(comment)
if request.user == comment.user:
serializer=CommentDetailSerializer(comment, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
else:
return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
else:
return Response("권한이 없습니다", status=status.HTTP_403_FORBIDDEN)
수정후에 postman put매소드 요청을 해보고 터미널에서도 코드가 잘 실행되는걸 확인했다.
'Programming > TIL' 카테고리의 다른 글
DRF | CBV | 커뮤니티 | community | 게시글 | 댓글 | 좋아요 (0) | 2022.11.15 |
---|---|
WIL | urls.py 에서 생기는 오류들을 발견 | Query parameter | path parameter (0) | 2022.11.13 |
DRF | Community | 인기글 | 카테고리 (0) | 2022.11.12 |
11.10 | DRF | CBV | sign in | signup | timeattack (0) | 2022.11.10 |
index serializer | 공부 (0) | 2022.11.09 |