我有一个用户模型和另一个页面模型。现在我想实现类似Facebook的之类的。用户可以喜欢任何页面。稍后我必须检索单个用户的所有喜欢的列表,以及喜欢特定页面的所有用户的列表。
我尝试为Likes创建一个单独的模型,并将两个字段设置为User(OneToOne)和Page(OnetoOne)。但是我以后如何获得数据呢?
答案 0 :(得分:3)
user = User.objects.get(username="foo")
user_likes = user.likes_set.all()
page = Page.objects.get(id=4)
page_likes = page.likes_set.all()
您可以在Like模型的字段定义中更改相关管理器的默认名称:
user = models.ForeignKey(User, related_name="likes")
page = models.ForeignKey(Page, related_name="likes")
然后您可以将它们称为:
user_likes = user.likes.all()
page_likes = page.likes.all()
作为旁注,有一些Django应用程序可以完成这项工作: