Q. serializer url pk값으로 매핑하기

go easy on NG·2023년 1월 29일
0

Q&A

목록 보기
13/18

urls.py

from django.urls import path
from . import views

urlparrerns=[
path("",views.categories),
path("<int:pk>",views.category),
]

views.py

@api_view()
def category(request, pk):
    category = Category.objects.get(pk=pk)
    serializer = CategorySerializer(category)
    return Response(serializer.data)

심화

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path("", views.Categories.as_view()), 
    path("<int:pk>",views.CategoryDetail.as_view()),
]

views.py

class CategoryDetail(APIView):
    
        def get_object(self, pk):
            try:
                return Category.objects.get(pk=pk)
            except Category.DoesNotExist:
                raise NotFound
            return category

        def get(self,request,pk):
            serializer = CategorySerializer(self.get_object(pk))
            return Response(serializer.data)
        
        def put(self,request, pk):
            serializer=CategorySerializer(self.get_object(pk),data=request.data, partial=True,
            )
            if serializer.is_valid():
                updated_category = serializer.save()
                return Response(CategorySerializer(updated_category).data)
            else:
                return Response(serializer.errors)
        
        def delete(self,request, pk):
            self.get_object(pk).delete()
            return Response(status=HTTP_204_NO_CONTENT)
profile
🐥개발자

0개의 댓글