나는 다음과 같은 모델을 가지고 :장고 관계의 객체를 삭제하려면 어떻게해야합니까? (관련된 모든 객체를 유지하면서)?
One
name (Char)
Many
one (ForeignKey,blank=True,null=True)
title (Char)
나는 한 인스턴스를 삭제하려면 모든 관련 개체가 한 인스턴스에 대한 자신의 관계를 느슨하게한다. 현재 코드는 다음과 같습니다.
one=One.objects.get(<some criterion>)
more=Many.objects.filter(one=one)
for m in more
m.one=None
m.save()
#and finally:
one.delete()
코드는 무엇을 수행합니까? 삭제해야하는 개체를 찾고 관련 개체를 검색하고 ForeignKey를 None으로 설정 한 다음 인스턴스 하나를 삭제합니다. 그러나이 프로세스의 어딘가에서 모든 관련 개체 (많은 인스턴스)를 프로세스에서 삭제할 수도 있습니다. 내 질문은 : 관련 개체가 삭제 된 이유는 무엇이며 어떻게 방지합니까?