我想创建一个子工厂,仅在用户在调用时请求时才创建实例。
鉴于这些模型:
class Group(models.Model):
name = models.CharField()
class Member(models.Model):
name = models.CharField()
group = models.ForeigKey(Group, blank=True, null=True)
还有这家工厂:
class MemberFactory(factory.django.DjangoModelFactory):
class Meta:
model = Member
name = factory.Sequence("Member {}".format)
group = factory.Subfactory(GroupFactory)
如果明确要求,我希望可以选择仅创建一个组,但不会丢失所有其他功能。换句话说,这些都应该有效:
MemberFactory() # Expect group=None
MemberFactory(group=True) # Expect group=GroupFactory()
MemberFactory(group__name="ABC")
MemberFactory(group=Group.objects.get(...))