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