60.Django(장고) - ecommerce 프로젝트 - DRF - 디시리얼라이저(Desirialize) - 예제(CRUD)

JungSik Heo·2024년 12월 19일

1.store\models.py

테스트를 위하여 blank=True, null=True 추가후 아래의 DB 업데이트

python manage.py makemigrations
python manage.py migrate

image = models.ImageField(upload_to='upload/product',blank=True, null=True)#dev_50 테스트를 위하여

2.api\views.py

CRUD를 위하여 아래의 코드를 집어 넣음

#def_50 추가 되도록
@api_view(['GET','POST'])
def api_products(request):
    
    if request.method == 'GET':
        products = Product.objects.all()
        serializer = ProductSerializer(products, many=True)
        return Response(serializer.data)

    if request.method == 'POST':
        serializer = ProductSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()
        return Response(serializer.data)

#def_50 수정 삭제 조회가 되도록 추가
@api_view(['GET', 'PUT', 'DELETE'])
def api_product(request, pk):
    product = get_object_or_404(Product, id=pk)
    
    if request.method == 'GET':
        serializer = ProductSerializer(product)
        return Response(serializer.data)
    
    elif request.method == 'PUT':
        serializer = ProductSerializer(product, data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()
        return Response(serializer.data)
    
    elif request.method == 'DELETE':
        product.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)

content 안에 json 파일을 넣고 테스트


가격 부분을 수정하고 시간 부분을 지운뒤 put 버튼을 누른후 가격 부분이 수정 되었는가 확인


delete 버튼을 누른후 해당 번호의 상품이 삭제 되었는가 확인

profile
쿵스보이(얼짱뮤지션)

0개의 댓글