シンプルな 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
ますが、この場合は関連付けを解除したいだけです。ご覧のとおり、blank
との両方null
が に設定されていTrue
ます。
OneToOneField
を空/空白/nullに設定するにはどうすればよいですか?
参考までに、私はdjango 1.4を使用しています。