Я использую factory_boy для создания фабрик приложения, над которым я работаю. У меня возникла проблема при попытке создать фабрику модели, которая имеет взаимно однозначное отношение к другой модели.
Вот модели:
class Playlist(AccountDependantMixin, models.Model):
test = models.OneToOneField('core.PlaylistTest', related_name='playlist')
class PlaylistTest(Test):
pass
AccountDependantMixin - это класс, который содержит дополнительную информацию. Он снаружи, потому что он нужен и другим моделям. У меня разные виды тестов. Вот почему PlaylistTest пуст
Это фабрики:
class PlaylistTestFactory(factory.DjangoModelFactory):
class Meta:
model = PlaylistTest
class PlaylistFactory(factory.DjangoModelFactory):
class Meta:
model = Playlist
test = factory.SubFactory(PlaylistTestFactory)
А вот как я пытаюсь инициализировать экземпляр фабрикой:
self.playlist = PlaylistFactory(creator=AdminUserFactory(account=self.account))
Я получаю следующую ошибку:
IntegrityError: null value in column "test_id" violates not-null constraint
DETAIL: Failing row contains (1, , playlist0, sub_title0, description0, 0, t, f, 2016-03-31 12:49:23.739207+00, 0, 2, 1, null)
PlaylistTestFactory
, может быть, поэтому связанный объект не создается и вместо этого устанавливается значение null? - person v1k45   schedule 31.03.2016