可能是一个愚蠢的问题,但我现在已经把头撞到墙上一段时间了。 我决定尝试使用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()
模型,但只是好奇为什么它不会自动执行。
答案 0 :(得分:5)
您没有为Django模型使用正确的基类。继承而不是:
class QualtricsSurveyCacheFactory(factory.DjangoModelFactory):
...
然后,QualtricsSurveyCacheFactory()
将返回带有主键的已保存实例。如果您想要未保存的实例,请使用QualtricsSurveyCacheFactory.build()
。