我正在使用model_mommy和Django测试来创建对象。我在创建具有反向FK的模型时遇到了麻烦。我可以采用相反的方式作为一种解决方法,但是虽然它有效但看起来不正确所以我想知道我是否可以反过来这样做?
假设我有两个模型,用户和个人资料,通过FK从个人资料到用户相关(它不是一对一的,它只是一个FK)。 Profile模型有一个bool属性调用is_aardvark。
在模特妈妈身上我可以创建这样的食谱:
aardvark_profile = Recipe(Profile, is_aardvark=True)
non_aardvark_profile = Recipe(Profile, is_aardvark=False)
然后我可以在我的测试中创建一个带有aardvark配置文件的用户,例如:
user = mommy.create_recipe(aardvark_profile).user
这似乎不对,因为我正在通过aardvark_profile配方创建用户。我想通过某种用户配方理想地创建一个用户(也许将来我会有一些其他模型FKd到用户,所以上面的方法不起作用。)
我尝试过类似下面的内容,但不起作用:
# doesn't work
broken_aardvark_user = Recipe(User, profile_set=mommy.create_recipe(aardvark_profile)
这甚至可能吗?有任何想法吗?如果其他所有方法都失败了,我可以创建一个帮助方法为我做这个。
谢谢!
答案 0 :(得分:2)
你可以这样做:
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