1

假设我有一个简单的 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。

4

1 回答 1

0

创建模型时,您可以要求 django 不要建立反向关系。

class MyModel(models.Model):
    my_field = models.ForeignKey(MyRelatedModel, related_name='+')
于 2013-07-03T02:40:24.413 回答