Django 응용 프로그램에서 레코드를 삭제하는 대신 "삭제됨"으로 표시하고 활성 쿼리에서 숨길 수 있습니다. 내 주된 이유는 우연히 레코드를 삭제할 경우 (이 레코드는 특정 백엔드 감사 추적에 필요할 수도 있습니다) 사용자에게 삭제 취소 옵션을 제공하는 것입니다.실제로 어떻게 장고 모델에서 삭제 된 레코드를 실제로 삭제하는 대신 표시 할 수 있습니까?
많은 외래 키 관계가 있으므로 나는 삭제 된 레코드를이 레코드에 "캐스 캐 이드 (Cascade)"플래그로 표시해야합니다. 어떤 도구, 기존 프로젝트 또는 방법을 사용해야합니까?
하지만 다른 개체의 검색이 이것을 존중한다고 생각하지 않습니다. 즉, 관련 모델에서 검색하는 경우 삭제 된 레코드를 무시하는 관리자를 사용합니다. 즉, 삭제 된 것으로 표시된 레코드는 여전히 관계가 유지됩니다. 이는 아마도 원하는 것은 아닙니다. – fastmultiplication
@fastmultiplication "삭제 된 레코드를 무시하는 관리자를 사용합니다"라는 말은 삭제 된 플래그를 무시한다는 의미입니까, 즉 삭제 레코드가 포함됩니까? 그것이 내가 보는 행동입니다. –
오른쪽. 관리자를 사용하여 액세스 할 수있는 객체를 제어하는 것은 해당 클래스를 사용할 때만 작동합니다. 클래스 A가 매니저를 사용하여 "삭제 된"오브젝트를 숨기고 있다고 가정하면, A.objects는 삭제 된 오브젝트를 숨길 것입니다. 그러나 A가 B 클래스와 관련이 있다면, B.filter (a__name = 'smith')'는 삭제 된 A 객체를 모두 검색합니다. – fastmultiplication