我在两个模型之间使用一对一的关系,我需要能够清除这种关系。但是,我找不到清除(clear(),remove()等的方法...)删除该关系,Django管理员不会执行该操作。有没有人有这个问题的经验?我想我可能不得不跳过一对一的字段,并在字段上使用一对一的unique = true设置。
编辑:我应该提到。我确实在字段上设置了null = True,但它没有什么区别。
答案 0 :(得分: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
然后像第一个例子那样继续。
答案 1 :(得分:0)
如果为该字段指定了null=True
,那么您应该可以执行Instance.<foreignmodel>_set.clear()
我可能会关闭此字段。