如何将OneToOneField设置为空/空/空?

时间:2013-07-02 18:48:42

标签: python django

假设我有一个简单的OneToOneField设置:

class MyRelatedModel(models.Model):
    pass

class MyModel(models.Model):
    my_field = OneToOneField(MyRelatedModel, blank=True, null=True)

>>> my_related_instance = MyRelatedModel()
>>> my_related_instance.save()

>>> my_model_instance = MyModel(my_field=my_related_instance)
>>> my_model_instance.save()

这意味着我可以通过my_related_instance访问my_model_instance.my_field。 但是,我想打破这种联系:

>>> my_model_instance.my_field = None
AttributeError: 'NoneType' object has no attribute 'myrelatedmodel_id'

>>> setattr(my_model_instance, 'my_field', None)
AttributeError: 'NoneType' object has no attribute 'myrelatedmodel_id'

我知道我可以删除关联的my_related_instance,但在这种情况下,我只想打破关联。如您所见,blanknull都设置为True

如何将OneToOneField设置为空/空/空?

作为参考,我使用的是django 1.4。

1 个答案:

答案 0 :(得分:0)

当您创建模型时,您可以要求django不要构建向后关系。

class MyModel(models.Model):
    my_field = models.ForeignKey(MyRelatedModel, related_name='+')