I have 2 models, django User model and 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 factories:
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)
so Employee model has 2 relations to User model (ForeignKey - creator and OneToOneField - user)
when I create Factory boy models I get: RecursionError: maximum recursion depth exceeded
How do I avoid this error?