0
OneToOne 관계가있는 Django 모델의 여러 팩토리를 설정하려고합니다. & 외래 키와 같은 방식으로 작동하지 않는 것 같습니다.OnetoOne 관계로 Django 모델을위한 팩토리 만들기
내 unittest를 실행할 때 주 모델에는 관계가 설정되어 있지 않습니다.
내 모델 :
class ThePlan(models.Model):
user = models.ForeignKey("User")
creationdate = models.DateField(auto_now_add=True)
class OldPlan(models.Model):
plan = models.OneToOneField("ThePlan")
theplan = CharField(max_length = 200,)
class NewPlan(models.Model):
plan = models.OneToOneField("ThePlan")
theplan = CharField(max_length = 200,)
내 공장 :
class ThePlanFactory(factory.DjangoModelFactory):
FACTORY_FOR = "mysite.PlanModel"
user = factory.SubFactory(UserFactory)
class OldPlanFactory(factory.DjangoModelFactory):
FACTORY_FOR = "mysite.OldModel"
plan = factory.RelatedFactory(ThePlanFactory)
theplan = ''
class NewPlanFactory(factory.DjangoModelFactory):
FACTORY_FOR = "mysite.NewModel"
plan = factory.RelatedFactory(ThePlanFactory)
theplan = ''
그리고 내 테스트에서
가setUp()
나는 다음과 같은 일을 해요;
def setUp(self):
self.user = factories.UserFactory.create()
self.plan = factories.ThePlanFactory.create(
user=self.user
)
self.oldplan = factories.OldPlanFactory.create(
plan=self.plan
)
self.newplan = factories.NewPlanFactory.create(
plan=self.plan
)
이렇게 포함 된 테스트를 실행하면 DoesNotExist: ThePlan has no OldPlan
이 표시됩니다.
여기서 제가 잘못 되었나요? 문제는 바로 create
입니다. 대신 build
으로 공장을 설정하고 관계를 설정 한 다음 save
을 호출해야합니까?
@danihp 잘 발견! 나는 그것을'main','model1','model2'로 쓰고 있었고, 그것은 지루한 예가되어서 중도를 바꾸어 놓았다는 것을 깨달았습니다! 감사. –
'ThePlanFactory'하지만'OldPlanFactory'에 문제가있는 것 같습니다. setUp의 어느 부분에서 오류가 발생했는지 알려줄 수 있습니까? – danihp