0

django 애플리케이션에는 1-M 관계가있는 두 개의 모델이 있습니다. ParentChild. DeleteView 클래스를 사용하여 상위 모델 개체를 삭제해야합니다. 개체를 삭제하기 전에 개체에 자식 개체가 있는지 확인해야하며, 개체 개체를 삭제하는 대신 오류 메시지를 반환합니다. 현재 내 DeleteView, 기본과 같다 :Django 클래스 기반 DeleteView 검사 제약

class ParentDeleteView(DeleteView): 
    model = Parent 
    def get_success_url(self): 
     return reverse_lazy('parent-list') 

어떤 방법 내가 제약 조건을 확인하기 위해 구현해야합니까?

답변

1

그런 경우 delete 메서드를 재정의해야합니다.

from django.http import HttpResponseRedirect 

class ParentDeleteView(DeleteView): 
    model = Parent 

    def delete(self, request, *args, **kwargs): 
     self.object = self.get_object() 
     # check if object has child if yes return error 
     # otherwise 
     success_url = self.get_success_url() 
     self.object.delete() 
     return HttpResponseRedirect(success_url) 


    def get_success_url(self): 
     return reverse_lazy('parent-list')