2

ユーザー用のモデルとページ用のモデルがあります。今、私は Facebook のようなものを実装したいと考えています。ユーザーは任意のページに「いいね」を付けることができます。後で、1 人のユーザーによるすべてのいいね! のリストと、特定のページを気に入ったすべてのユーザーのリストを取得する必要があります。

Likes 用に別のモデルを作成し、User (OneToOne) と Page (OnetoOne) の 2 つのフィールドを作成してみました。しかし、後でデータを取得するにはどうすればよいでしょうか。

4

1 に答える 1

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 アプリがいくつかあります。

于 2012-09-09T10:07:57.667 に答える