用户的Django模型,如页面情况

时间:2012-09-09 09:34:19

标签: django schema models

我有一个用户模型和另一个页面模型。现在我想实现类似Facebook的之类的。用户可以喜欢任何页面。稍后我必须检索单个用户的所有喜欢的列表,以及喜欢特定页面的所有用户的列表。

我尝试为Likes创建一个单独的模型,并将两个字段设置为User(OneToOne)和Page(OnetoOne)。但是我以后如何获得数据呢?

1 个答案:

答案 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应用程序可以完成这项工作: