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 одновременно.

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