Заводской мальчик RecursionError: превышена максимальная глубина рекурсии

У меня есть 2 модели, django User model и Employee

class Employee(TimeStampedModel):

  creator = models.ForeignKey(User, on_delete=models.CASCADE, related_name="employees")
  first_name = models.CharField(max_length=255, blank=True)
  last_name = models.CharField(max_length=255, blank=True)
  phone = models.CharField(validators=[phone_regex], max_length=17, blank=True)
  email = models.EmailField(validators=[email_regex], max_length=255, blank=True)
  user = models.OneToOneField(User, on_delete=models.SET_NULL, null=True, related_name="employee")

2 фабрики:

class UserFactory(factory.django.DjangoModelFactory):
  class Meta:
      model = User

  employee = factory.RelatedFactory(
      "control_room.tests.factories.EmployeeFactory",
      factory_related_name='user'
  )
  first_name = fake.first_name()
  last_name = fake.last_name()
  username = factory.Sequence(lambda n: "user_%d" % n)
  email = fake.ascii_email()

class EmployeeFactory(factory.django.DjangoModelFactory):
  class Meta:
      model = Employee

  creator = factory.SubFactory(UserFactory)
  first_name = fake.first_name()
  last_name = fake.last_name()
  phone = "+88005553535"
  email = fake.ascii_email()
  user = factory.SubFactory(UserFactory)

поэтому модель Employee имеет 2 отношения к модели User (ForeignKey - создатель и OneToOneField - пользователь)

когда я создаю модели Factory boy, я получаю: RecursionError: превышена максимальная глубина рекурсии

Как мне избежать этой ошибки?

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