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

Вот док-ты

Вернуться на верх