2010-01-04 34 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

相关问题