학습주제
시리얼라이저와 뷰 Generic API View
학습내용
더욱 간단하게 구현해보고자 한다.
class QuestionList(generics.ListCreateAPIView):
queryset = Question.objects.all()
serializer_class = QuestionSeirializer
이렇게만 정의 해주주면 상속받은 generics에서 처리해준다.
QuestionDetail
도 마찬가지로
class QuestionDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Question.objects.all()
serializer_class = QuestionSerializer
로 구성하였다. 비교를 위해 정의되었던 메소드들을 주석처리한다.
보면 Delete 버튼까지 잘 구현되어 있다.
그 이유는 generics.RetrieveUpdateDestroyAPIView)'
에 이미 다 구형이 되어 있기 때문이다. 윈도우 기준 Ctrl을 누르고 RetrieveUpdateDestroyAPIView를 누르면, 이 클래스가 어떻게 구현되어 있는지 나온다.
아까 우리가 썼었던 mixins를 그대로 가져다 쓰고 있는 것을 확인할 수 있다. 추가로 약간의 업데이트인 patch
도 구현되어 있다.
generics.ListCreateAPIView
도 들어가보면, 미리 get과 post 메소드를 mixins를 상속받아 구현해놨다.
안쓰는 모듈은 음영처리가 되어 있다. 지워준다.
모듈이 이해가 안가면 들어가서 계속 봐야겠다.