0

「人気のあるフィード」を実装したいと思います。私は最も好きなものがある一連の投稿を表示したい。Django:人気のあるフィードのお気に入りに基づいてオブジェクトを注文する

抽象モデルのスキーマです。 views.pyで

(Model) Like 
     user = User 
     content_type = Post, User, Group 
     object_id = 22 

(Model) Post 
     user = User 
     content = '' 
     created_at = '12082017' 

、私は私のPostモデルがフィールドのように、私はorder_byを使用することはできませんがないので

Post.objects.order_by('-like')[:30] 

、のようにソートされたクエリセットを取得したいです。

私はscoreフィールドを追加して、好きな時間と現在の時刻を記録することを考えています。それがうまくいくと思いますか? :)

また、人気のあるフィードを作成する方法についての考えやアドバイスは高く評価されます。

Reverse Generic Relations

あなたのポストのモデルとは逆の一般的な関係を追加し、あなたが好きなの数のカウントを取得してから注文することができます:あなたは何かが、この目的のために逆の一般的な関係を求めているあなたに

答えて

1

ありがとうございましたそれは人気に基づく注文のための好きに基づいています。あなたのポストモデルでは

追加:

likes = GenericRelation(Like) 

はたぶん発注のための注釈を使用します。

Post.objects.annotate(like_count=Count('likes')).order_by('-like_count') 

あなたは各ポストのオブジェクトの追加フィールド「like_count」を得るでしょうプラス、それは注文されます好きな人の数に基づいて

+0

この作品は! :) どうもありがとうございます。グレート –

+0

助けてくれてうれしいです。 – rajkris

+0

https://stackoverflow.com/questions/48005427/calling-another-serializer-from-the-serializer-messes-up-uri –

関連する問題