사용자가 특정 유형 (예 : 테이블의 마지막 행)의 마지막 객체를 삭제하지 못하게 할 수있는 방법이 있습니까? 사용자는 이러한 종류의 개체를 일반적으로 삭제할 수 있어야하지만, 적어도 하나의 항목이 남아 있어야합니다.이 경우에는 사용자와 관련된 항목이 하나 이상 있어야합니다. Django 관리자의 경우 마지막 객체 유형 삭제를 방지하는 방법
나는 모델의 삭제 기능을 재정의하는 시도 : 이def delete(self, *args, **kwargs):
others = Presentation.objects.filter(user=self.user).exclude(pk=self.pk)
if len(others) < 1:
pass
else:
super(Presentation, self).delete(*args, **kwargs)
이 작동을하지만, 사용자는 삭제가 실제로 성공했는지 이야기한다. 유효성 검사가 실패 할 때와 같이 오류 메시지가 표시되는 것을 좋아합니다. 그러나 유효성 확인은 내가 알 수있는 한 저장할 때만 적용됩니다.
이것은 작동하지 않습니다. 'clean()'은 save에서 명시 적으로 호출되지만 delete에서는 호출되지 않습니다. – pholz
그래 맞아. 삭제시 아무 것도 정리할 이유가 없습니다. 내 잘못이야. –
내 대답을 업데이트했습니다 –