유저정보 삭제 (DELETE) API 테스트 하기
본 포스팅에서는 PostUser
Model의 데이터를 삭제하기 위해 DELETE API
를 테스트 해보기로 한다.
저번 포스팅에서도 작업하였듯이 API
를 작성하기 위해서 아래코드가 필요하다.
from dashboard_core.forms import PostUserForm
from rest_framework.routers import DefaultRouter
from dashboard_core.views import PostViewSet, PostUserViewSet
router = DefaultRouter()
router.register(r"posts", PostViewSet, basename="post_status")
router.register(r"users", PostUserViewSet, basename="user_status")
from rest_framework import response
from rest_framework.viewsets import ModelViewSet
from rest_framework.permissions import IsAuthenticatedOrReadOnly
from dashboard_core.models import Post, PostUser
from dashboard_core.serializers import PostSerializer, PostUserSerializer, PostUserGetSerializer, PostUserPostSerializer
# Create your views here.
class PostViewSet(ModelViewSet):
queryset = Post.objects.all()
serializer_class = PostSerializer
permission_classes = [IsAuthenticatedOrReadOnly]
class PostUserViewSet(ModelViewSet):
queryset = PostUser.objects.all()
def get_serializer_class(self):
if self.action == 'list':
return PostUserSerializer
elif self.action == 'create':
return PostUserPostSerializer
elif self.action == 'update':
return PostUserPostSerializer
elif self.action == 'delete':
return PostUserPostSerializer
else:
return PostUserSerializer
from django.db.models import fields
from rest_framework import serializers
from dashboard_core.models import Post, PostUser
class PostSerializer(serializers.ModelSerializer):
title = serializers.CharField()
contents = serializers.StringRelatedField()
created_at = serializers.DateTimeField()
class Meta:
model = Post
fields = "__all__"
class PostUserSerializer(serializers.ModelSerializer):
username = serializers.CharField()
class Meta:
model = PostUser
fields = "__all__"
class PostUserGetSerializer(serializers.ModelSerializer):
username = serializers.CharField()
class Meta:
model = PostUser
fields = ("id", "username", "password",)
class PostUserPostSerializer(serializers.ModelSerializer):
class Meta:
model = PostUser
fields = ("username","password",)
def validate_password(self, value):
if len(value) < 7:
raise serializers.ValidationError("The password has to be at least 7 characters long!")
return value
위처럼 기본적인 위의 코드는 이미 들어가 있으므로
우리는 테스트만 해보면 될 것이다.
서버를 다음 커맨드와 같이 올린다.
python manage.py runserver
그리고 Advanced REST client
를 열고 아래와 같이 작성한다.
보내고 나면 현재 데이터를 알 수 있다.
나온 데이터들 중, id
가 4인 데이터가 존재한다.
이제부터 위 아이디에 해당하는 데이터를 지워보겠다.
위처럼 DELETE
Request를 작성하고 전송하면 아래처럼 메시지가 돌아온다.
자, 실제 데이터를 다시 한번 확인해보자.
4번째 아이디를 가진 데이터가 삭제되었음을 알 수 있다.
Thank you!