1. Category List GET
product GET과 유사하지만, 기존 코드에 limit, offset이 걸려 있어서 이번엔 pagination.py 파일을 따로 만들어 offset limit을 설정했다.
# pagination
from rest_framework.pagination import LimitOffsetPagination
class CategoryLimitOffsetPagination(LimitOffsetPagination):
default_limit = 5
# serializer
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = '__all__'
# view
class CategoryListGV(generics.ListAPIView):
queryset = Category.objects.all()
serializer_class = CategorySerializer
pagination_class = CategoryLimitOffsetPagination
결과는 아래와 같다.
{
"count": 11,
"next": "http://127.0.0.1:8000/products/categories?limit=5&offset=5",
"previous": null,
"results": [
{
"id": 1,
"category_name": "클렌저",
"main_description": "....",
"sub_description": "...."
},
{
"id": 2,
"category_name": "각질 제거",
"main_description": "....",
"sub_description": "...."
},
{
"id": 3,
"category_name": "트리트먼트 & 마스크",
"main_description": "....",
"sub_description": "...."
},
{
"id": 4,
"category_name": "토너",
"main_description": "....",
"sub_description": "...."
},
{
"id": 5,
"category_name": "하이드레이터",
"main_description": "....",
"sub_description": "...."
}
]
}
2. Category Detail GET
Product Detail GET과 마찬가지로, url에서 pk를 넘겨줘야 하고, serializer는 위와 같다.
# view
class CategoryDetailGV(generics.RetrieveAPIView):
queryset = Category.objects.all()
serializer_class = CategorySerializer
# url
...
path('/categories/<int:pk>', CategoryDetailGV.as_view()),
...
결과는 아래와 같다.
{
"id": 1,
"category_name": "클렌저",
"main_description": "피부의 남은 각질, 불필요한 유분 그리고 기타 잔여물을 말끔히 씻어내어 피부를 깨끗하게 하는 것은 인텔리전트 스킨케어의 기초입니다.",
"sub_description": "<h2>처음의 시작</h2><p>각질, 불필요한 유분 그리고 기타 잔여물을 말끔히 씻어내어 피부를 깨끗하게 하는 것은 인텔리전트 스킨케어의 기초입니다.</p>"
}
'Django' 카테고리의 다른 글
[Django] DRF - 1차 프로젝트 리팩토링 (4) API Testing (1) | 2022.06.14 |
---|---|
[Django] DRF - 1차 프로젝트 리팩토링 (3) Cart (0) | 2022.06.09 |
[Django] DRF - 1차 프로젝트 리팩토링 (1) Product detail & list GET (0) | 2022.06.07 |
[Django] DRF - API Testing (0) | 2022.06.01 |
[Django] DRF 정리 - instance, validated_data, @api_view, reuiqred, ModelSerializer, Nested Serializer (4) | 2022.05.29 |