4

可能是一个愚蠢的问题,但我已经把头撞到墙上有一段时间了。我决定尝试 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()在创建后建模,但只是好奇为什么它不能自动完成。

4

1 回答 1

7

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

class QualtricsSurveyCacheFactory(factory.DjangoModelFactory):    
    ...

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

于 2017-01-02T23:14:41.583 回答