2010-01-04 73 views
1

我正在使用兩個模型之間的一對一關係,我需要能夠清除這種關係。但是,我找不到清除(清除(),刪除()等)的方法來刪除該關係,並且Django管理員將不執行該操作。有沒有人有這個問題的經驗?我想我可能不得不跳過一對一的領域,並在場上使用一對多的unique = true。如何在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

雅,我做了,我應該提到它。這沒有什麼區別。你也不會像對象一樣設置(Instance。 _set)以引用一對一的關係。 – stinkypyper 2010-01-04 19:51:35

相關問題