Я использую 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)
Что такое AccountDependantMixin? –
@ daniel Это класс, который содержит дополнительную информацию. Это снаружи, потому что другие модели тоже нужны. –
У вас нет атрибутов в 'PlaylistTestFactory', может быть, поэтому связанный объект не создается и вместо него установлен в null? – v1k45