2017-01-02 73 views
2

可能是一个愚蠢的问题,但我一直在撞墙撞了我一会儿。 我决定尝试出厂男孩库来简化我的测试,并定义了工厂:FactoryBoy“创造”策略似乎并不能拯救django模型

from . import models 
import factory 

class QualtricsSurveyCacheFactory(factory.Factory): 
class Meta: 
    model = models.QualtricsSurveyCache 

survey_id = "SR_1234" 
qualtrics_username = "[email protected]#bla" 
survey_name = "fake" 

然而,当我这样做QualtricsSurveyCacheFactory.create()它返回与ID =无.save()模型后

>>> survey = QualtricsSurveyCacheFactory() 
>>> print survey.id 
None 

我可以模拟创造,但只是好奇它为什么不自动做。

回答

3

您没有为Django模型使用正确的基类。继承,而不是从:

class QualtricsSurveyCacheFactory(factory.DjangoModelFactory):  
    ... 

然后,QualtricsSurveyCacheFactory()会返回一个保存的实例有一个主键。如果您想要未保存的实例,请使用QualtricsSurveyCacheFactory.build()

+0

确实。非常感谢! –