您能否创建一个 factory-boy 子工厂,该子工厂仅在用户在调用时请求时才创建实例?

时间:2021-07-06 22:59:18

标签: python django factory-boy

我想创建一个子工厂,仅在用户在调用时请求时才创建实例。

鉴于这些模型:

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(...))

0 个答案:

没有答案