【发布时间】:2021-10-13 14:54:57
【问题描述】:
我创建了三个工厂,其中 User 和 Profile 关联为 onetoone 字段,Label 也是 Profile 的子工厂。
import factory
from users.models import User, Label, Profile
from .models import Release
import random
from django.db.models.signals import post_save
@factory.django.mute_signals(post_save)
class ProfileFactory(factory.django.DjangoModelFactory):
class Meta:
model = Profile
user = factory.SubFactory("releases.factories.UserFactory", profile=None)
@factory.django.mute_signals(post_save)
class UserFactory(factory.django.DjangoModelFactory):
class Meta:
model = User
email = factory.Faker("email")
password = factory.Faker("password")
profile = factory.RelatedFactory(ProfileFactory, factory_related_name='user')
class LabelFactory(factory.django.DjangoModelFactory):
profile = factory.SubFactory(ProfileFactory)
name = factory.Faker("name")
class Meta:
model = Label
但是当我尝试创建标签 (LabelFactory.create()) 时会抛出错误
RelatedObjectDoesNotExist: User has no profile.
怎么了?请帮忙!
【问题讨论】:
-
为什么
profile=None设置在ProfileFactory的用户中?是因为UserFactory的相关厂吗?
标签: django django-testing factory-boy