FactoryBoy "create" 策略似乎没有保存 django 模型

FactoryBoy "create" strategy doesn't seem to save django model

可能是个愚蠢的问题,但我已经用头撞墙了一段时间了。 我决定尝试 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() 时,它 returns 模型的 id = None

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

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

您没有为 Django 模型使用正确的基础 class。继承自:

class QualtricsSurveyCacheFactory(factory.DjangoModelFactory):    
    ...

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