2

オブジェクトを作成するために、Django テストでmodel_mommyを使用しています。逆 FK を使用してモデルを作成できません。回避策として逆にすることもできますが、動作しているのにうまくいかないので、逆にすることはできますか?

プロファイルからユーザーへの FK を介して関連付けられた、ユーザーとプロファイルの 2 つのモデルがあるとします (これは 1 対 1 ではなく、単なる FK です)。Profile モデルには bool 属性呼び出し is_aardvark があります。

モデルママでは、次のようなレシピを作成できます。

aardvark_profile = Recipe(Profile, is_aardvark=True)
non_aardvark_profile = Recipe(Profile, is_aardvark=False)

次に、次のようなテストでツチブタ プロファイルを持つユーザーを作成できます。

user = mommy.create_recipe(aardvark_profile).user

aardvark_profile レシピを使用してユーザーを作成しているため、これは正しくないようです。理想的には、ある種の User レシピを介して User を作成したいと考えています (将来的には、他のモデルを User に FKd する予定なので、上記は機能しません)。

以下のようなことを試しましたが、うまくいきません。

# doesn't work
broken_aardvark_user = Recipe(User, profile_set=mommy.create_recipe(aardvark_profile)

これは可能ですか?何か案は?他のすべてが失敗した場合に、これを行うためのヘルパー メソッドを作成することができます。

ありがとう!

4

1 に答える 1

3

あなたはこれを行うことができます:

from model_mommy.recipe import Recipe, related

aardvark_profile = Recipe(Profile, is_aardvark=True)
aardvark_user = Recipe(User, profile_set=related('aardvark_profile'))

それが役に立ったことを願っています

[1] http://model-mommy.readthedocs.org/en/latest/recipes.html#recipes-with-foreign-keys

于 2014-08-05T17:59:33.967 に答える