2017-06-19 11 views
1

私はFactoryBoyを習得していません。私は、ドキュメントの正確な例の例を試しています:reverse dependencies。私はAttributeErrorを取得していますDjango Factory Boy - 逆依存関係(逆ForeignKey)共通レシピ

class UserLogFactory(factory.django.DjangoModelFactory): 
    class Meta: 
     model = models.UserLog 

2):

タイプを

1)は、それが言及した "UserLogFactoryは" のように、1つは、それ自身作るべき "それほど明らか" であることを正しいですオブジェクト 'UserLog'は属性 'ACTION_CREATE'を持っていません

私はインターネットを検索しましたが、1つの参照(github error report)が見つかりました同じ日にそれを自分で解決しました。彼は解決策は言及していませんが、彼のコメントから、私はそれが何かを明らかに収集します...

おかげさまで助けてくれてありがとう!
actionがUserLogFactoryのフィールドであることが予想されるように

答えて

1

RelatedFactorySubFactoryに関する工場出荷時の少年のドキュメントを1として、あなたはRelatedFactory創造に定義 名前付きパラメータは、UserLogFactoryに渡されます。ユーザ・ログは、私がUserLog.actionフィールドのための可能な選択肢の一つであると仮定しACTION_CREATE、のための一定の定義がないため

log = factory.RelatedFactory(UserLogFactory, 'user', action=models.UserLog.ACTION_CREATE) 

はAttributeErrorが発生します。

これはUserLogモデルを定義するために可能な方法である:Django choices docsを見てchoicesの詳細については

class UserLog(models.Model): 
    ACTION_CREATE = 'CREATE' 
    ACTION_UPDATE = 'UPDATE' 

    ACTION_CHOICES = (
     (ACTION_CREATE, 'create'), 
     (ACTION_UPDATE, 'update'), 
    ) 
    user = models.ForeignKey(User) 
    action = models.CharField(choices=ACTION_CHOICES) 

+0

こんにちはアレクセイ、答えてくれてありがとう。明らかです。その間、私はhttps://github.com/FactoryBoy/factory_boy/issues/58を見つけました。サンプルコードは基本的に同じコードを示しています。自分自身を作るために何か「ACTION_CREATE」を読むべきです。私はこれを少しだけ不明瞭にする唯一の人ですか?私はfactory_boyの私が大好きですが、私は大好きですが、私はドキュメントに少し問題があります... – MZA

+0

その問題はあなたの問題に直接関係していません。それは名前の衝突についてであり、修正されています。この特定のドキュメントの不一致を修正するために、質問に記載されている問題を再度開くことができます。 –

関連する問題