Django factory boy factory с отношениями OneToOne
Я использую factory boy для создания тестовой фабрики для моего django App. И у меня возникли проблемы с определением фабрики, потому что моя модель имеет отношение "один к одному" с самой собой. Моя модель выглядит примерно так:
class MyModel(models.Model):
previous: MyModel= models.OneToOneField(
"self",
related_name="next",
null=True,
blank=True
)
next: MyModel
А моя фабрика выглядит следующим образом:
class MyModelFactory(factory.django.DjangoModelFactory):
next = None
previous = None
Но тогда я не могу правильно определить свою модель в тесте:
first_model: MyModel= MyModelFactory()
second_model: MyModel= MyModelFactory(previous=first_task)
Итак, мы видим, что для second_model.previous мы можем найти first_model. Но для first_model.next у нас ничего нет. Это очевидно, потому что мы ничего не поместили внутрь, когда определяли first_model. Однако, очевидно, что мы не должны делать что-то вроде:
first_model: MyModel= MyModelFactory(next=second_task)
second_model: MyModel= MyModelFactory(previous=first_task)
Потому что вторая задача еще не была определена, когда мы определяли первую модель. Поэтому я не знаю, что мне делать в этом случае, чтобы first_model.next = second model и second_model.previous = first_model одновременно.