해결된 질문
작성
·
154
0
https://www.inflearn.com/questions/626618
해당 질문을 올렸던 수강생입니다!
위 코드를 실행하면
get() returned more than one Comment -- it returned 2!
3번 포스트에 댓글이 2개 존재하는 상황에서 이러한 에러가 떠서, 애초에 시도했었던
get_queryset을 다시 사용하려고 했지만
다음과 같이 작성하면
Field 'id' expected a number but got <doeco_app.views.PostCommentListAPIView object at 0x00000233D4818BB0>.
답변 1
0
안녕하세요. 독자님.
1. 부모 지네릭뷰인 ListAPIView 로직을 보면,
get_queryset() 메소드는 대상 QuerySet 을 만들어 리턴해 주는 역할을 합니다.
그 이후에 Serializer 처리 및 응답 처리는 변경할 게 없구요.
그래서 아래 처럼 get_queryset() 메소드만 오버라이딩해주면 됩니다.
class PostCommentListAPIView(ListAPIView):
serializer_class = CommentSerializer
def get_queryset(self):
postId = self.kwargs.get('pk')
qs = Comment.objects.filter(post=postId)
return qs
시도해보고 안되면 다시 질문해 주세요.