ViewSet을 이용하면 이때까지 serializer.py 파일에서 적은 것들은 필요가 없어진다.
ViewSet이란? Django REST framework는 단일 클래스에 관련 있는 view들을 결합한 ViewSet 기능을 제공한다. 즉, ViewSet는 여러 가지 API의 기능을 통합해서 하나의 API Set로 제공하는 것이다.
viewsets.py
from rest_framework import viewsets
from .models import Room
from .serializers import BigRoomSerializer
class RoomViewSet(viewsets.ModelViewSet):
queryset = Room.objects.all()
serializer_class = BigRoomSerializer
ViewSet은 우리한테 URL을 제공한다.
rooms/urls.py
from rest_framework.routers import DefaultRouter
from django.urls import path
from . import viewsets
app_name = "rooms"
router = DefaultRouter() #router를 이용하면 경로 지정을 DRF에서 자동화해주기 때문에 viewset의 url은 router로 설정을 해 준다.
router.register("", viewsets.RoomViewSet, basename="room")
urlpatterns = router.urls
위와 같이 나오는데 빨간색으로 표시된 링크에 들어가면
이전 글에서 작성했던 방들의 리스트가 나온다.