2017-01-02 68 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

確實。非常感謝! –