[DRF] 오버라이딩 할때 데이터 가져오기

JinUk Lee·2023년 8월 1일
0

DRF 학습하기

목록 보기
33/54

예를 들어서 특정 인스턴스를 삭제하려고할때, 조건을 통과하지 못한 인스턴스는 삭제가 불가능하게 하려고 한다.

이런 경우에 destory 를 오버라이드해서 커스텀해야하는데 요청에서 데이터를 끌어와야 한다.

이런 경우에는 get_object() 를 활용할 수 있다.



def TestViewSet(ModelViewSet):
	
    queryset = Test.objects.all()
    serializer_class = TestSerializer
    
    def destroy(self, request, *args, **kwargs):
        
        complete_check = self.get_object()
        if complete_check.is_complete:
            raise exceptions.ValidationError("조건에 만족하지 못하는 인스턴스는 삭제할 수 없습니다.")
        
        else:
            return super().destroy(request, *args, **kwargs)
profile
개발자 지망생

0개의 댓글