0

循環依存関係factory_boy: 循環依存関係を持つアプリのfactory_boyを使用して、django アプリのフィクスチャを作成しようとしています。

モデル:

from django.db import models

class A(models.Model):
    b = models.ForeignKey(B)

class B(models.Model):
    c = models.ForeignKey(C)

class C(models.Model):
    a = models.ForeignKey(A, null=False)

工場:

# in AFactory
b = SubFactory(BFactory)
# in BFactory
c = SubFactory(CFactory)
# in CFactory
a = CircularSubFactory('a_factory', 'AFactory', b__c__a=None)

これらのファクトリを使用して factory_boy スクリプトを実行すると、ValueError: Cannot assign None: "C.a" does not allow null valuesエラーが発生しますが、これは正常なC.a設定null=Falseです。

factory_boy スクリプトをロードしC、変更C.aして設定し、実行することはできますか?null=True

いくつかのポイント:

  • それが醜いことはわかっていますが、他に選択肢がないようです。ただし、フィクスチャを作成するために内部的にのみ使用されます。
  • これらのクラスがコアの一部である既に実行中のアプリであるため、モデルを変更できません。
4

0 に答える 0