Search code examples
djangodjango-modelsdjango-rest-frameworkmodel-mommy

mommy Recipe with OneToOne


I am using model_mommy with Django to create test objects. I want to implement Recipe functionality. I have a model Teacher and a model TeacherSchedule:

Teacher(models.Model):
   some fields ...


TeacherSchedule(models.Model):
   teacher = models.OneToOneField(
        'Teacher',
        on_delete=models.CASCADE,
        related_name='schedule',
    )
   some fields...

The Recipe I try to use then:

schedule = Recipe(
    TeacherSchedule,
)

teacher_with_schedule = Recipe(
    Teacher,
    schedule=foreign_key('schedule'),
)

However, when I run my tests, it seems that the TeacherSchedule object is not created. Am I doing something wrong with the Recipe?


Solution

  • You need to remove the '' from 'schedule':

    schedule = Recipe(
        TeacherSchedule,
    )
    
    teacher_with_schedule = Recipe(
        Teacher,
        schedule=foreign_key(schedule),
    )
    

    Also, it is recommended that you use the updated version of Model Mommy, now known as Model Bakery.