from rest_framework import generics
from snippets.models import Snippet
from snippets.serializers import SnippetSerializer
class SnippetListCreateAPIView(generics.ListCreateAPIView):
queryset = Snippet.objects.all()
serializer_class = SnippetSerializer
class SnippetRetrieveUpdateDestroyAPIView(generics.RetrieveUpdateDestroyAPIView):
queryset = Snippet.objects.all()
serializer_class = SnippetSerializer
from rest_framework import viewsets
from snippets.models import Snippet
from snippets.serializers import SnippetSerializer
class SnippetViewSet(viewsets.ModelViewSet):
queryset = Snippet.objects.all()
serializer_class = SnippetSerializer
(url 중복제거 , 접두어를 통해 router 역할 함)
이건 tutorial code
router = DefaultRouter()
router.register(r'snippets', viewsets.SnippetViewSet)
urlpatterns_viewset = [
path('snippets/', viewsets.SnippetViewSet.as_view({
'get': 'list',
'post':'create',
})),
path('snippets/<int:pk>/', viewsets.SnippetViewSet.as_view({
'get' : 'retrieve',
'patch': 'partial_update',
'delete': 'destroy',
})),
]
urlpatterns_api_view = [
path('snippets/', generic.SnippetListCreateAPIView.as_view()),
path('snippets/<int:pk>/', generic.SnippetRetrieveUpdateDestroyAPIView.as_view()),
]
urlpatterns = [
path('api-view', include(urlpatterns_api_view)),
path('viewset/', include(urlpatterns_viewset)),
path('router/', include(router.urls)),
]
아직 해보지 않음 이런 경우 어떻게 해야하는가?
router = DefaultRouter()
router.register(r'snippets', viewsets.SnippetViewSet)
router.register(r'posts', viewsets.PostViewSet)
urlpatterns_viewset = [
path('snippets/', viewsets.SnippetViewSet.as_view({
'get': 'list',
'post':'create',
})),
path('snippets/<int:pk>/', viewsets.SnippetViewSet.as_view({
'get' : 'retrieve',
'patch': 'partial_update',
'delete': 'destroy',
})),
]
urlpatterns_viewset = [
path('posts/', viewsets.PostViewSet.as_view({
'get': 'list',
'post':'create',
})),
path('posts/<int:pk>/', viewsets.PostViewSet.as_view({
'get' : 'retrieve',
'patch': 'partial_update',
'delete': 'destroy',
})),
]
이런경우 어떤식으로 적용해야할지 나중에 해보자