Предположим, у меня есть простой OneToOneField настроить:Как установить 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
на пустое/пустое/пустое?
Для справки, я использую django 1.4.
логика просто звучит неправильно. было бы интересно услышать некоторые подробности о том, что вы собираетесь выполнить. возможно, есть лучшее решение – Alp
Это может показаться неправильным, но я не понимаю, как можно установить отношения «один-к-одному», но не отменять. – NT3RP