728x90
반응형
이제 마지막으로 완료된 todo를 조회하는 기능을 구현해보려고 한다.
완료 view만들기
#todo/views.py
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.generics import get_object_or_404
from rest_framework import viewsets
from .models import Todo
from .serializers import TodosimpleSerializer,TodoDetailSerializer,TodoCreateSerializer
.
.
.
class DoneTodosAPIView(APIView):#완료
def get(self,request):
dones = Todo.objects.filter(complete=True)
serializer = TodosimpleSerializer(dones,many=True)
return Response(serializer.data,status=status.HTTP_200_OK)
complete가 True인Todo만 필터링을 하여 TodoSimpleserializer에 전달한다.
완료 조회 view만들기
완료조회 view는 pk가 필요하기 때문에 완료전체와 따로 만들어야한다.
#todo/views.py
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.generics import get_object_or_404
from rest_framework import viewsets
from .models import Todo
from .serializers import TodosimpleSerializer,TodoDetailSerializer,TodoCreateSerializer
.
.
.
class DoneTodoAPIView(APIView):#완료조회
def get(self,request,pk):
done = get_object_or_404(Todo,id=pk)
done.complete = True
done.save()
serializer = TodoDetailSerializer(done)
return Response(status=status.HTTP_200_OK)
get메서드 형태로 구성하여, 특정 Todo를 찾아 complete를 true로 설정하여 저장한다.
완료 URL연결하기
#todo/urls.py
from django.urls import path
from .views import TodosAPIView,TodoAPIView,DoneTodoAPIView,DoneTodosAPIView
urlpatterns = [
path('todo/',TodosAPIView.as_view()),
path('todo/<int:pk>', TodoAPIView.as_view()),
path('done/',DoneTodosAPIView.as_view()),
path('done/<int:pk>',DoneTodoAPIView.as_view()),
]
완료 API 테스트
완료된 목록을 보여준다.
todo api 만들기 끝!!
데이터만 전달해 주기 때문에 더 편한 느낌..?
시리얼라이저만 잘 활용한다면 원하는 데이터를 다룰 수 있을 것 같다. 더 공부 해봐야징
전체 소스 코드는 아래 링크 확인!
https://github.com/YoonDii/self_study/tree/master/DRF_TODO
728x90
반응형
'Python > DRF(Django REST Framework)' 카테고리의 다른 글
[DRF] 영화정보_API(2) (0) | 2023.02.22 |
---|---|
[DRF] 영화정보_API(1) (0) | 2023.02.22 |
[DRF] Todo 목록 API만들기(5) (0) | 2023.01.30 |
[DRF] Todo 목록 API만들기(4) (0) | 2023.01.30 |
[DRF] Todo 목록 API만들기(3) (0) | 2023.01.30 |
댓글