Django 1.8:当项通过两个独立的关系关联时,我如何指定使用哪个关系?



我有User (django的默认模型)和Interest

它们通过模型通过两个多对多模型相互关联,因此跟踪关系的其他数据。

一个模型,Selected,跟踪用户想要关联的兴趣。

另一种模型Recommended列出了向用户建议的兴趣。

User对象,我怎么能得到任何一个?user.interest_set.all()只通过Selected返回利息。如何指定要使用的关系/直通模型?

Django甚至不允许你在相同的模型之间定义两个关系,除非你定义了related_name。所以你使用那个属性。

class Interest(models.Model):
    user_selected = models.ManyToManyField(
         User, through="Selected", related_name="selected_interests")
    user_recommended = models.ManyToManyField(
         User, through="Recommended", related_name="recommended_interests")

my_user.selected_interests.all()  # Interests where the user is in `user_selected`
my_user.recommended_interests.all()  # Interests where the user is in `user_recommended`

相关内容

  • 没有找到相关文章

最新更新