Стратегия "создания" FactoryBoy, похоже, не спасает модель Джанго

Возможно, глупый вопрос, но я уже некоторое время стучу головой о стену. Я решил попробовать библиотеку 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 ответ

Решение

Вы не использовали правильный базовый класс для моделей Django. Унаследуйте вместо этого от:

class QualtricsSurveyCacheFactory(factory.DjangoModelFactory):    
    ...

Затем, QualtricsSurveyCacheFactory() вернет сохраненный экземпляр с первичным ключом. использование QualtricsSurveyCacheFactory.build() если вы хотите несохраненный экземпляр.

Другие вопросы по тегам