Django OneToOne поля конфликтуют при создании обоих экземпляров в одном представлении
Я уверен, что я что-то упускаю.
У меня есть две модели, Foo и Bar, так
class Foo(models.Model):
bar = models.OneToOneField(Bar)
..
class Bar(models.Model):
foo = models.OneToOneField(Foo)
..
Теперь мне нужно создать новые экземпляры для обоих, которые будут сопоставлены 1-1. Создавая экземпляр, я должен сопоставить имя с другим экземпляром, который еще не существует.
Как с этим справиться? Есть ли способ создать пустой экземпляр заранее или s.th.?
foo_instance = Foo(name=bar_instance)
bar_instance = Bar(name=foo.instance)
# won't work
..
Вы должны объявить отношения только один раз.
class Foo(models.Model):
..
class Bar(models.Model):
foo = models.OneToOneField(Foo)
..
Затем, вы вызываете свои объекты в обеих сторонах экземпляров.
foo_instance = Foo()
bar_instance = Bar(foo=foo.instance)
bar_instance.foo
foo_instance.bar # As the name of the class, but in lowercase