如何在创建Factory对象时设置SubFactory的值

时间:2014-01-15 15:46:04

标签: python django factory factories

是否可以在不创建两个Factory对象的情况下设置SubFactory的值?

例如,我有两个工厂;

class UserFactory(factory.DjangoModelFactory):
    FACTORY_FOR = 'mysite.user'

    name = "Mark"


class MyFactory(factory.DjangoModelFactory):
    FACTORY_FOR = 'mysite.myfactory'

    user = factory.SubFactory(UserFactory)

我想创建MyFactory()并同时设置user.name的值。

您是否必须先创建user = UserFactory.create(name="John"),还是可以从args到MyFactory()一行完成?

在测试的那一刻,我得到了以下内容;

def setUp(self):
    user = factories.UserFactory(name="John")
    myfactory = factories.MyFactory(user=user)

1 个答案:

答案 0 :(得分:3)

根据documentation,您可以在外部工厂定义中定义SubFactory字段:

factories.MyFactory(user__name="John")

希望有所帮助。