【问题标题】:Model Mommy Recipe with Reverse FK反向 FK 模型妈妈食谱
【发布时间】:2014-07-29 11:18:29
【问题描述】:

我使用 model_mommy 和 Django 测试来创建对象。我在创建具有反向 FK 的模型时遇到问题。作为一种解决方法,我可以用相反的方式做,但是虽然它有效,但它看起来并不正确,所以我想知道我是否可以反过来做?

假设我有两个模型,用户和配置文件,通过从配置文件到用户的 FK 相关联(这不是一对一,它只是一个 FK)。 Profile 模型有一个布尔属性调用 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)

这甚至可能吗?有任何想法吗?如果一切都失败了,我可以创建一个辅助方法来为我执行此操作。

谢谢!

【问题讨论】:

  • 你应该添加一个链接来解释妈妈是什么型号,我从来没有听说过。大概是this library.

标签: django django-testing django-tests model-mommy


【解决方案1】:

你可以这样做:

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

【讨论】:

  • 效果很好。感谢您的帮助,以及非常有用的 model_mommy。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 2011-06-06
  • 2020-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多