2010-01-04 5 views
1

두 모델 사이에 일대일 관계를 사용하고 있으며 그 관계를 정리할 수 있어야합니다. 그러나 나는 그 관계를 제거하기 위해 clear(), remove() 등을 제거하는 방법을 찾을 수 없으며, 장고 관리자는 그 작업을 수행하지 않을 것입니다. 누구든지이 문제에 경험이 있습니까? 1 대 1 필드를 건너 뛰고 필드에 고유 = true를 설정하여 1 대 1을 사용해야한다고 생각합니다.Django 모델에서 일대일 관계를 지우려면 어떻게해야합니까?

편집 : 언급 했어야합니다. 나는 필드에 null = True를 설정했으나 차이를 만들지 않습니다.

답변

7

그냥 없음으로 설정하고

my_instance.my_one_to_one_fieldname = None 
my_instance.save() 

편집 :-) 저장 : 그건 그렇고, 이것은 OneToOneField을 정의한 모델에서만 작동합니다.

my_related_instance.othermodel.my_one_to_one_fieldname = None 
my_related_instance.othermodel.save() 

하지만 그 일을 같은 단지 동일합니다 : 난 당신을 제외하고, 뒤쪽이 일에 대해 갈 것입니다 방법을 모르겠어요 다음

my_instance = my_related_instance.othermodel 

첫 번째 예처럼 계속.

0

null=True이 필드를 지정하면 당신은 내가 이것에 떨어져있을 가능성이있는 Instance.<foreignmodel>_set.clear()을 할 수 있어야 ..

+0

예, 제가 언급 했어야합니다. 그것은 차이를 만들지 않습니다. 또한 1 대 1 관계 선박으로 참조하기 위해 객체 (인스턴스. _set)처럼 설정되지 않습니다. – stinkypyper

관련 문제