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)