Django工厂男孩专用扩展
factory-man的Python项目详细描述
工厂工人
factoryman为Factory Boy提供特定于django的扩展。
安装
pip install factory-man
用法
factoryman为您提供一个factory函数create_populated_modelfactory
,它接受模型类并基于模型的字段自动创建一个factory类。如果要重写某些字段,可以将它们作为关键字参数传递给__init__
方法。
fromfactorymanimportcreate_populated_modelfactoryfrom.modelsimportProjectProjectFactory=create_populated_modelfactory(Project)ExpiredProjectFactory=create_populated_modelfactory(Project,deadline='1999-04-04')
要重写工厂的_create
方法,请使用create_override
关键字参数。这对于创建工厂男孩文档中描述的多对多连接非常有用。
查看this article获得更详细的用户指南。
低级功能
ModelFieldSequence
扩展了factory.Sequence
以提供更干练的语法。它接受一个django模型类作为参数,并使用类名和它绑定到的字段名来创建一个唯一的值。
或者,它可以接受string
参数,该参数将直接使用,而不是从类和字段派生的名称。
示例:
fromfactory.djangoimportDjangoModelFactoryasModelFactoryfromfactorymanimportModelFieldSequenceclassCharityFactory(ModelFactory):classMeta:model=Charityname=ModelFieldSequence(Charity)# Will be `Charity__name-n`, where n is the object countemail=ModelFieldSequence(string='hello@charity.ee')# Will be `hello@charity.ee-n`, where n is the object count