J'utilise factory_boy pour créer les usines de l'application sur laquelle je travaille. J'ai un problème en essayant de créer l'usine d'un modèle qui a une relation un à un à un autre modèle.Relation One to One en usine - Intégrité Erreur
Voici les modèles:
class Playlist(AccountDependantMixin, models.Model):
test = models.OneToOneField('core.PlaylistTest', related_name='playlist')
class PlaylistTest(Test):
pass
AccountDependantMixin est une classe qui contient des informations supplémentaires. C'est à l'extérieur parce que les autres modèles en ont aussi besoin. J'ai différents types de test. Voilà pourquoi PlaylistTest est vide
Ce sont les usines:
class PlaylistTestFactory(factory.DjangoModelFactory):
class Meta:
model = PlaylistTest
class PlaylistFactory(factory.DjangoModelFactory):
class Meta:
model = Playlist
test = factory.SubFactory(PlaylistTestFactory)
Et voici comment je suis en train d'initialiser l'instance avec l'usine:
self.playlist = PlaylistFactory(creator=AdminUserFactory(account=self.account))
Je reçois ce qui suit erreur:
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)
Qu'est-ce que AccountDependantMixin? –
@daniel C'est une classe qui contient des informations supplémentaires. C'est à l'extérieur parce que les autres modèles en ont aussi besoin. –
Vous n'avez aucun attribut dans 'PlaylistTestFactory', c'est peut-être pourquoi l'objet associé n'est pas créé et est défini sur null à la place? – v1k45