상품 수정이나 삭제를 할 때 권한이 있는 사용자(게시글 작성자)만 할 수 있도록 해야한다
그래서 뷰에서 검증하는 코드를 넣어주었다
class ProductDetailAPIView(APIView):
permission_classes = [
IsAuthenticatedOrReadOnly, # GET은 인증이 필요없고 POST, PUT, DELETE 요청은 인증이 필요함
]
# 상품 수정
def put(self, request, productID):
product = get_object_or_404(Product, id=productID)
writer = product.author
if request.user == writer:
serializer = ProductSerializer(
instance=product, data=request.data, partial=True
)
if serializer.is_valid(raise_exception=True):
serializer.save()
return Response(serializer.data)
else:
return Response("수정 권한이 없는 사용자입니다.")
# 상품 삭제
def delete(self, request, productID):
product = get_object_or_404(Product, id=productID)
writer = product.author
if request.user == writer:
product.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
else:
return Response("삭제 권한이 없는 사용자입니다.")
'[내일배움캠프]스파르타코딩클럽 AI 웹개발 > Today I Learned' 카테고리의 다른 글
[TIL] spartamarket-DRF 트러블 슈팅2 (1) | 2024.09.10 |
---|---|
[TIL] spartamarket-DRF 트러블 슈팅 (0) | 2024.09.09 |
[TIL] TokenBlacklistView - Method \POST\ not allowed (0) | 2024.09.05 |
[TIL] 장고 기초 이해도 오답노트 (0) | 2024.09.04 |
[TIL] Django superuser (0) | 2024.09.03 |