FactoryBoy“创造”策略似乎并没有保存django模型

时间:2017-01-02 23:09:21

标签: django qualtrics factory-boy

可能是一个愚蠢的问题,但我现在已经把头撞到墙上一段时间了。 我决定尝试使用factory-boy库来简化我的测试并定义一个工厂:

from . import models
import factory

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

survey_id = "SR_1234"
qualtrics_username = "bla@blah.bla#bla"
survey_name = "fake"

但是,当我执行QualtricsSurveyCacheFactory.create()时,它会返回id = None

的模型
>>> survey = QualtricsSurveyCacheFactory()
>>> print survey.id
None

我可以在创建后.save()模型,但只是好奇为什么它不会自动执行。

1 个答案:

答案 0 :(得分:5)

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

class QualtricsSurveyCacheFactory(factory.DjangoModelFactory):    
    ...

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